RestFul風格~~
阿新 • • 發佈:2020-12-09
初識Mybatis
什麼是Mybatis
Mybatis框架也稱為ORM(Object Relational Mapper,物件關係對映) 框架。為了解決面向物件和關係型資料庫中資料不匹配的技術。通過描述Java物件與資料庫表之間的對映關係自動將Java應用程式的物件持久化到關係型資料庫表中
過程
依賴
User.java
package com.sty.pojo1; import lombok.Data; @Data public class User { private int id; private String name; private String password; }
UserDao.java
package com.sty.Mapper;
import com.sty.pojo1.User;
import java.util.List;
public interface UserDao {
User queryUserById(int id);
List<User> queryAll();
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sty.Mapper.UserDao"> <select id="queryUserById" parameterType="int" resultType="user"> select * from mybatis.user where id=#{id} </select> <select id="queryAll" resultType="user"> select * from mybatis.user; </select> </mapper>
mybatis-config.xml
<?xml version="1.0" encoding="UTF8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!----> <configuration> <!--配置資料庫--> <properties resource="db.properties"/> <!--log4j配置--> <settings> <!--value是大寫--> <setting name="logImpl" value="LOG4J"/> </settings> <!--掃描包--> <typeAliases> <typeAlias type="com.sty.pojo1.User" alias="user"/> </typeAliases> <!--環境配置--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/sty/Mapper/UserMapper.xml"/> </mappers> </configuration>
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&userSSL=true
username=root
password=root
log4j.properties
#將等級為BUG的日誌檔案輸出到控制泰console和檔案file中#
log4j.rootLogger=DEBUG,console,file
#控制檯輸出配置#
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#檔案輸出相關設定#
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/sty.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}[%c]%m%n]
#日誌輸出級別#
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PrepareStatement=DEBUG
Test
package com.sty;
import com.sty.Mapper.UserDao;
import com.sty.pojo1.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void QueryUserByIdTest() throws IOException {
//讀取配置檔案
InputStream inputStream = Resources.getResourceAsStream("Mybatis-config.xml");
//根據配置檔案,例項化SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通過SqlSessionFactory,例項化SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
User user = mapper.queryUserById(1);
System.out.println(user);
List<User> users = mapper.queryAll();
for (User user1 : users) {
System.out.println(user1);
}
//關閉
sqlSession.close();
}
}