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项目过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql开源内库_将内裤穿在外面的男人
- 下一篇: mysql 代码如何导出数据_mysql