mybatis mysql Dao_Dao模式创建mybatis项目过程
Java EE框架
1、表现层 springMVC
2、粘合剂 spring(IOC/控制反转 AOP/面向切面编程 DI/依赖注入)
3、持久层 mybatis
Dao模式创建mybatis项目过程
1、下载jar包
mybatis jar包下载地址:
链接:https://pan.baidu.com/s/1xvZauxhkAPYxWvoJuxlLFg
提取码:ia7w
复制这段内容后打开百度网盘手机App,操作更方便哦
mybatis中文手册地址:
http://www.dba.cn/book/mybatis/MYBATISZhongWenShouCe/MYBATISXMLPeiZhi.html
2、导入所需要的jar包
commons-logging-1.2.jar 用于日志处理
log4j-1.2.17.jar 日志系统,负责日志输出
mybatis-3.5.0.jar mybatis核心jar包
mysql-connector-java-5.1.46.jar MySQL数据库驱动jar包
将jar包部署到项目中
3、编写mybatis核心配置文件
创建mybatis核心配置文件mybatis-config.xml
创建Java属性配置文件jdbc.properties
创建日志属性配置文件log4j.properties
mybatis-config.xml
/p>
"mybatis-3-config.dtd" >
jdbc.properties
jdbc.DriverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8
jdbc.username=用户名
jdbc.password=密码
log4j.properties
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
4、创建实体类
创建实体类并生成seter/geter方法重写toString方法。
User.java
package com.model;
public class User {
private int userId;
private String userName;
private String userPass;
private int userSex;
private int userAge;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
public int getUserSex() {
return userSex;
}
public void setUserSex(int userSex) {
this.userSex = userSex;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", userPass=" + userPass + ", userSex=" + userSex
+ ", userAge=" + userAge + "]";
}
}
5、创建Dao接口
UserDao.java
package com.dao;
import com.model.User;
public interface UserDao {
public User findUserById(int Id);
//通过id查询用户信息
public void addUser(User user);
//向数据库中增加用户信息
public void deleteUser(int Id);
//删除用户信息
public void updateUser(User user);
//修改用户信息
}
userService.java
package com.service;
import com.model.User;
public interface userService {
public User findUserById(int Id);
public void addUser(User user);
public void deleteUser(int Id);
public void updateUser(User user);
}
6、创建 sql 映射文件
在dao包下创建sql映射文件 UserDao.xml。这里使用mapper动态代理所以映射文件必须和接口UserDao.java在同一个包下。
select * from userdb where userId=#{Id}
insert into userdb (userName,userPass,userSex,userAge)
values (#{userName},#{userPass},#{userSex},#{userAge})
delete from userdb where userId=#{value}
update userdb set userName=#{userName},userPass=#{userPass},userSex=#{userSex},userAge=#{userAge}
where userId=#{userId}
7、单例模式创建SqlSessionFactory工厂
MyBatisUtilsLazy.java
package com.utils;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtilsLazy {
public static SqlSessionFactory factory=null;
public static SqlSessionFactory getFactory() {
if (factory==null) {
InputStream in;
try {
synchronized(MyBatisUtilsLazy.class){
if (factory==null) {
in =Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(in);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return factory;
}
}
8、编写实现类
UserServiceImpl.java
package com.service.impl;
import org.apache.ibatis.session.SqlSession;
import com.dao.UserDao;
import com.model.User;
import com.service.userService;
import com.utils.MyBatisUtilsLazy;
public class UserServiceImpl implements userService {
SqlSession session = MyBatisUtilsLazy.getFactory().openSession();
UserDao mapper = session.getMapper(UserDao.class);
@Override
public User findUserById(int Id) {
// TODO Auto-generated method stub
return mapper.findUserById(Id);
}
@Override
public void addUser(User user) {
// TODO Auto-generated method stub
try {
mapper.addUser(user);
session.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
session.close();
}
}
@Override
public void deleteUser(int Id) {
// TODO Auto-generated method stub
try {
mapper.deleteUser(Id);
session.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
session.close();
}
}
@Override
public void updateUser(User user) {
// TODO Auto-generated method stub
try {
mapper.updateUser(user);
session.commit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
session.close();
}
}
}
9、编写测试类
TestAddUser.java
package com.test;
import org.junit.Test;
import com.model.User;
import com.service.impl.UserServiceImpl;
public class TestAddUser {
@Test
public void testAddUser() {
UserServiceImpl userServiceImpl = new UserServiceImpl();
User user = new User();
String userName="aaa";
String userPass="152425";
int userSex=0;
int userAge=28;
user.setUserName(userName);
user.setUserPass(userPass);
user.setUserSex(userSex);
user.setUserAge(userAge);
userServiceImpl.addUser(user);
System.out.println(user);
}
}
TestDeleteUser.java
package com.test;
import org.junit.Test;
import com.service.impl.UserServiceImpl;
public class TestDeleteUser {
@Test
public void testdeleteUser() {
UserServiceImpl userServiceImpl = new UserServiceImpl();
int Id=16;
userServiceImpl.deleteUser(Id);
}
}
TestFindUserById.java
package com.test;
import org.junit.jupiter.api.Test;
import com.model.User;
import com.service.impl.UserServiceImpl;
public class TestFindUserById {
@Test
public void testFindUserById(){
UserServiceImpl userServiceImpl = new UserServiceImpl();
int Id=17;
User user = userServiceImpl.findUserById(Id);
System.out.println(user);
}
}
TestUpdateUser.java
package com.test;
import org.junit.Test;
import com.model.User;
import com.service.impl.UserServiceImpl;
public class TestUpdateUser {
@Test
public void testupdateUser() {
UserServiceImpl userServiceImpl = new UserServiceImpl();
User user = new User();
String userName="张三";
String userPass="152425";
int userSex=0;
int userAge=25;
user.setUserId(18);
user.setUserName(userName);
user.setUserPass(userPass);
user.setUserSex(userSex);
user.setUserAge(userAge);
userServiceImpl.updateUser(user);
System.out.println(user);
}
}
mybatis mysql Dao_Dao模式创建mybatis项目过程相关推荐
- Maven3.2创建webapp项目过程中问题以及解决方案
用maven组件来创建web项目,maven的好处一大堆,但是在创建项目的时候问题也很多,诸多不顺,网上找了很多资料,貌似都没能解决问题. 环境:jdk1.7.0_80,eclipse4.4,mave ...
- mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园
一. 简介:网上关于存储过程的使用有很多的例子,但大多实现的功能比较简单,由于本人对SQL语句还不是很熟悉,更别说存储过程了,所以在实现该例子的时候遇到了很多问题,现在拿给大家来分享. 二. 在本例子 ...
- mysql脚本模式创建索引_mysql创建脚本索引范例
查看表中索引的方法: show index from table_name; 查看索引 索引的类型及创建例子:: 1.PRIMARY KEY (主键索引) alter table table_name ...
- mybatis mysql uuid_spring boot整合mybatis利用Mysql实现主键UUID的方法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- github创建maven项目过程
笔者运行环境: 1. windows 10 2. cygwin,安装openssh 3. git版本 2.11.0 前置操作,如果已经配置可以略过 1. cygwin下执行 ssh-keygen - ...
- 命令窗 创建vue 项目过程
这几条命令用来向git提交 转载于:https://www.cnblogs.com/vali/p/7493331.html
- MySQL数据库事务、mybatis框架、spring框架、springmvc框架、永和大王门店管理系统(框架第二部分)
第十二章 MySQL数据库事务 一. 事务及四大特性 1.什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行 ...
- idea中创建vue项目
idea构建vue项目 首先确保电脑上安装了node.npm.cnpm(淘宝镜像)下载依赖比较快.webpack打包工具.vue-cli构建项目结构的脚手架,相当于我们做ppt时选择样式的工具.其中的 ...
- IDE创建vue项目
IDE创建vue项目 vue与vue cli的关系 vue.js是一个框架,核心是数据绑定,可以用于老的项目,引入vue.js即可使用 Vue3文档 - vuejs:vue官网 vue cli:vue ...
最新文章
- 预测----三个原则
- 卫星的性能和服务器比较,卫星通信的常用频段的详细对比
- TMS320F28335之GPIO原理
- 段描述符表(GDT+LDT)的有感
- java中static关键字简介
- 编程心得体会_生信编程语言的经验之谈
- 卷积:如何成为一个很厉害的神经网络
- C#中网络编程异步操作方法与 粘包和分包问题
- 精选 | 2017年11月R新包推荐
- HTML+CSS纯静态页面布局的理解(一)
- 二(高)阶多元微分方程数值解法(其一)
- 安装torch 时,bash install-deps错误
- 一根网线实现两台计算机网络共享
- 【EXCEL绘制地图】获取地图图标信息时遇到问题。请确保处于联机状态,然后重试
- 参加最牛逼的运营人年终聚会,是种什么样的体验
- OpenStack私有云安装配置虚拟机
- 电商api、地图api、视频api、音乐api等各类接口合集,或许对你有用
- Java中文生僻字排序
- 【高效开发工具系列】API工具
- 说说开源中国社区的愚人节