詳解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.導(dǎo)入mybatis相關(guān)的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)資源過濾問題:配置報錯,不設(shè)置會報錯: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,低層原理還沒有搞懂,直接復(fù)制的條件是要創(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);因為重復(fù)定義導(dǎo)致空指針異常 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();增刪改需要添加事務(wù) sqlSession.close(); } }
到此這篇關(guān)于Mybatis模板(已優(yōu)化)適合小白的文章就介紹到這了,更多相關(guān)Mybatis模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java錯誤:進(jìn)行語法分析時已到達(dá)文件結(jié)尾的解決
這篇文章主要介紹了Java錯誤:進(jìn)行語法分析時已到達(dá)文件結(jié)尾的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08使用SpringMVC 重寫、擴(kuò)展HttpServletRequest請求參數(shù)
這篇文章主要介紹了使用SpringMVC 重寫、擴(kuò)展HttpServletRequest請求參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Vue中computed計算屬性和data數(shù)據(jù)獲取方式
這篇文章主要介紹了Vue中computed計算屬性和data數(shù)據(jù)獲取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03實例解決Java異常之OutOfMemoryError的問題
在本篇文章中,我們給大家分享了關(guān)于解決Java異常之OutOfMemoryError的問題的方法,有此需要的朋友們學(xué)習(xí)下。2019-02-02SpringBoot實現(xiàn)配置文件自動加載和刷新的示例詳解
在使用Spring Boot開發(fā)應(yīng)用程序時,配置文件是非常重要的組成部分,在不同的環(huán)境中,我們可能需要使用不同的配置文件,當(dāng)我們更改配置文件時,我們希望應(yīng)用程序能夠自動加載和刷新配置文件,本文我們將探討Spring Boot如何實現(xiàn)配置文件的自動加載和刷新2023-08-08在Java Spring框架中使用的設(shè)計模式有哪些
面試中常會被問道Spring框架使用了哪些設(shè)計模式?關(guān)于這個問題本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09