MyBatis知識點複習-01入門案例
一.創建項目與環境搭建
所需要的包全在裏面:
鏈接:https://pan.baidu.com/s/1P2v4hL7JBeYDk-BPlc_bzw
提取碼:jec7
將包全部導入(注意右鍵lib目錄點擊add as library)
sql表:
鏈接:https://pan.baidu.com/s/141vXclKZEnDTGJk_KeC6FQ
提取碼:4oka
javaBean
鏈接:https://pan.baidu.com/s/1QQtqd9ovnvrsQ0v7n89EBg
提取碼:g3qf
接下來在src目錄下創建SqlMapConfig.xml和log4j配置文件(我取名爲log4j.properties),內容如下
SqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置mybatis的環境信息 -->
<environments default="development">
<environment id="development">
<!-- 配置JDBC事務控制,由mybatis進行管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置數據源,採用dbcp連接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis複習"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
</configuration>
這裏要強調一下就是上面的那個url的值jdbc:mysql://localhost:3306/mybatis複習裏面的斜槓必須是反斜槓不可以是正斜槓,否則會報錯 No suitable driver found for jdbc:mysql:/localhost:3306/mybatis複習
log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
上面的內容沒有必要去記憶,只要理解其中關鍵的部分會靈活修改即可
二.使用入門案例
前面的SqlMapConfig是一個全局的配置文件,若想對某一個特定的Bean對象的對應表(一個Bean對象對應一個表)進行CRUD還需要一個映射配置文件
下面我們對USER表來操作:
創基在src目錄下創建sqlMap目錄,然後創建User的映射配置文件User.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="sknalksa">
</mapper>
上面的namespace是我隨便寫的這個參數不可以少,但是你可以隨便寫
下面我們實現查詢,就需要在mapper標籤裏面加上下面的內容
<select id="findUserById" parameterType="int" resultType="domain.User">
select * from user where id = #{id}
</select>
上面#{id}其實裏面可以不寫id,寫什麼都可以,findUserById是對應的方法,當然在這個案例中這個方法不由我們實際創建,有mybatis框架實現
下面來寫個測試類(這個你可以隨便起個名字),內容如下:
package test;
import domain.User;
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.InputStream;
public class TestUser {
@Test
public void Test(){
//讀取全局配置文件
InputStream resourceAsStream = TestUser.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml");
//獲取工廠對象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory build = sqlSessionFactoryBuilder.build(resourceAsStream);
SqlSession sqlSession = build.openSession();
User findUserById = (User)sqlSession.selectOne("findUserById", 10);
System.out.println(findUserById);
//關閉SqlSession
sqlSession.close();
}
}