第一步:jar包依賴
第二步:寫配置文件
MyBatis配置文件:/MyBatis/src/mybatis-config.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"> <!-- xml配置文件包含對MyBatis系統的核心配置 --> <configuration> <!-- 指定MyBatis所有日志的具體實現 --> <settings> <setting name="logImpl" value="LOG4J"/> </settings> <!-- 環境配置,即連接的數據庫。 --> <environments default="mysql"> <environment id="mysql"> <!-- 指定事務管理類型,type="JDBC"指直接簡單使用JDBC的提交和回滾設置 --> <transactionManager type="JDBC"/> <!-- dataSource指數據源配置,POOLED是JDBC連接對象的數據源連接池的實現 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- mapper告訴了MyBatis去哪找持久化類的映射文件 --> <mappers> <mapper resource="com/web/mybatis/mapper/UserMapper.xml"/> </mappers> </configuration>
日志輸出配置文件:/MyBatis/src/log4j.properties
#全局的日志配置
log4j.rootLogger=ERROR, stdout
#MyBatis的日志配置
log4j.logger.com.web.mybatis.mapper.UserMapper=DEBUG
#控制台輸出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
第三步:將要與數據庫表映射的對象類
/MyBatis/src/com/web/mybatis/domain/User.java
package com.web.mybatis.domain; public class User { private Integer id; private String name; private String sex; private Integer age; @Override public String toString() { return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + "]"; } public User() { super(); } public User(Integer id, String name, String sex, Integer age) { super(); this.id = id; this.name = name; this.sex = sex; this.age = age; } //忽略getter和setter方法 }
第四步:封裝讀取配置文件mybatis-config.xml,根據文件信息創建SqlSessionFactory對象,再獲取SqlSession對象
/MyBatis/src/com/web/mybatis/factory/FKSqlSessionFactory.java
package com.web.mybatis.factory; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /** * 封裝讀取配置文件mybatis-config.xml, * 根據文件信息創建SqlSessionFactory對象, * 再獲取SqlSession對象 * */ public class FKSqlSessionFactory { private static SqlSessionFactory sqlSessionFactory = null; //初始化創建SqlSessionFactory對象 static { try { //讀取mybatis-config.xml文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); //初始化mybatis,創建SqlSessionFactory類的實例 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }catch(Exception e) { e.printStackTrace(); } } //獲取SqlSession對象的靜態方法 public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } //獲取SqlSessionFactory的靜態方法 public static SqlSessionFactory getSqlSessionFactory() { return sqlSessionFactory; } }
第五步:Mapper.xml文件
/MyBatis/src/com/web/mybatis/mapper/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.web.mybatis.mapper.UserMapper"> <!-- parameterType屬性指定插入時使用的參數類型 useGeneratedKeys="true"表示使用數據庫自動增長策略,需要底層數據庫支持 --> <insert id="saveUser" parameterType="com.web.mybatis.domain.User"> INSERT INTO tb_user(id,name,sex,age) VALUES(#{id},#{name},#{sex},#{age}) </insert> <select id="selectUser" parameterType="int" resultType="com.web.mybatis.domain.User"> SELECT * FROM tb_user WHERE id=#{id} </select> <update id="modifyUser" parameterType="com.web.mybatis.domain.User"> UPDATE tb_user SET name=#{name},sex=#{sex},age=#{age} WHERE id=#{id} </update> <delete id="removeUser" parameterType="com.web.mybatis.domain.User"> DELETE FROM tb_user WHERE id=#{id} </delete> </mapper>
第六步:測試
/MyBatis/src/com/web/mybatis/test/test.java
package com.web.mybatis.test; import org.apache.ibatis.session.SqlSession; import com.web.mybatis.domain.User; import com.web.mybatis.factory.FKSqlSessionFactory; public class test { //插入數據測試 public static void InsertTest() { //獲得Session實例 SqlSession session = FKSqlSessionFactory.getSqlSession(); //創建User對象 User user = new User(2,"jack","男",10); //插入數據 session.insert("com.web.mybatis.mapper.UserMapper.saveUser", user); //提交事務 session.commit(); //關閉Session session.close(); } //查詢測試 public static void SelectTest() { //獲得Session實例 SqlSession session = FKSqlSessionFactory.getSqlSession(); //根據id查詢User對象 User user = session.selectOne("com.web.mybatis.mapper.UserMapper.selectUser", 1); System.out.println(user.toString()); //提交事務 session.commit(); //關閉Session session.close(); } //修改測試 public static void UpdateTest() { //獲得Session實例 SqlSession session = FKSqlSessionFactory.getSqlSession(); //根據id查詢User對象 User user = session.selectOne("com.web.mybatis.mapper.UserMapper.selectUser", 1); //修改User對象的屬性值 user.setName("Tom"); user.setAge(30); //修改User對象 session.update("com.web.mybatis.mapper.UserMapper.modifyUser", user); //提交事務 session.commit(); //關閉Session session.close(); } //刪除測試 public static void DeleteTest() { //獲得Session實例 SqlSession session = FKSqlSessionFactory.getSqlSession(); //根據id刪除User對象 session.delete("com.web.mybatis.mapper.UserMapper.removeUser", 1); //提交事務 session.commit(); //關閉Session session.close(); } public static void main(String[] args) { // InsertTest(); // SelectTest(); // UpdateTest(); // DeleteTest(); } }