詳解Mybatis模板(已優(yōu)化)適合小白
1.搭建數(shù)據(jù)庫(我用的是mysql 5.5)
#創(chuàng)建一個mybatis數(shù)據(jù)庫
create database `mybatis`;
#使用mybatis數(shù)據(jù)庫
use `mybatis`;
#創(chuàng)建一個user表,有id、username、password三個字段
create table `user`(
`id` int(10) not null primary key auto_increment,
`username` varchar(30) default null,
`password` varchar(30) default null
)engine=InnoDB default charset=utf8;
#插入數(shù)據(jù)
insert into `user`(`username`,`password`) values
('張三',123456),
('李四',123456),
('王五',123456);
2.導入mybatis相關的jar包(COPY,建議創(chuàng)建一個父子項目)
<dependencies>
<dependency>
<!--mysql依賴包-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!--mybatis依賴包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!--junit依賴包,為什么要用junit依賴包?@Test做單元測試用的-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<!--maven靜態(tài)資源過濾問題:配置報錯,不設置會報錯:ExceptionInInitializerError-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
3.編寫MyBatisUtil工具類(COPY,低層原理還沒有搞懂,直接復制的條件是要創(chuàng)建一個mybatis-config.xml文件 文件名要一致)
package com.kuang.utils;
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtil {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);因為重復定義導致空指針異常
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
4.1編寫db.properties配置文件(COPY,是后來優(yōu)化的)
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username=root password=root
4.2編寫MyBatis核心配置文件(COPY,mybatis-config.xml,已優(yōu)化)
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--第一個問題:
com.mysql.jdbc.Driver和mysql-connector-java 5一起用。
com.mysql.cj.jdbc.Driver和mysql-connector-java 6+ 一起用。
第二個問題:
serverTimezone=Asia/Shanghai 要加時區(qū),不加時區(qū)會報錯
-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${passwprd}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/super/dao/UserMapper.xml"/>
</mappers>
</configuration>
5.編寫User實體類
public class User {
private int id; //id
private String name; //姓名
private String pwd; //密碼
//構(gòu)造,有參,無參
//set/get
//toString()
}
6.編寫Mapper接口類(Mapper.java)
package com.kuang.dao;
import com.kuang.pojo.User;
import java.util.List;
public interface Mapper {
List<User> getUserList();
}
7.編寫mapper.xml配置文件
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.super.dao.UserDao">
<select id="getUserList" resultType="com.kuang.pojo.User">
select * from mybatis.user;
</select>
</mapper>
8.編寫測試類
package com.kuang.dao;
import com.kuang.pojo.User;
import com.kuang.utils.Mybatise;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void test(){
SqlSession sqlSession = MybatisUtil.getSqlSession();
UserDao mapper = sqlSession.getMapper(Mapper.class);
List<User> userList = mapper.getUserList();
for(User user:userList){
System.out.println(user);
}
//sqlSession.commit();增刪改需要添加事務
sqlSession.close();
}
}
到此這篇關于Mybatis模板(已優(yōu)化)適合小白的文章就介紹到這了,更多相關Mybatis模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用SpringMVC 重寫、擴展HttpServletRequest請求參數(shù)
這篇文章主要介紹了使用SpringMVC 重寫、擴展HttpServletRequest請求參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Vue中computed計算屬性和data數(shù)據(jù)獲取方式
這篇文章主要介紹了Vue中computed計算屬性和data數(shù)據(jù)獲取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
實例解決Java異常之OutOfMemoryError的問題
在本篇文章中,我們給大家分享了關于解決Java異常之OutOfMemoryError的問題的方法,有此需要的朋友們學習下。2019-02-02
SpringBoot實現(xiàn)配置文件自動加載和刷新的示例詳解
在使用Spring Boot開發(fā)應用程序時,配置文件是非常重要的組成部分,在不同的環(huán)境中,我們可能需要使用不同的配置文件,當我們更改配置文件時,我們希望應用程序能夠自動加載和刷新配置文件,本文我們將探討Spring Boot如何實現(xiàn)配置文件的自動加載和刷新2023-08-08

