Mybatis入门程序增删改查操作
學習目標
- 了解Mybatis的基本知識
- 熟悉Mybatis的工作原理
- 掌握Mybatis入門程序的編寫
?
文章目錄
1.初始Mybatis
2.Mybatis入門程序
?3.Mybatis操作總結
1.初始Mybatis
- MyBatis 是一款優秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。
- MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。
- MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為數據庫中的記錄。
2.Mybatis入門程序
1.在MySQL數據庫中,創建一個名為mybatis的數據庫,在此數據庫中創建user表,同時插入相關數據.
2.在Eclipse中,創建Java Project工程,將Mybatis的核心JAR包,lib目錄中的依賴JAR包,以及MySQl數據庫的驅動JAR包一同添加到項目的lib目錄下,并發布到類路徑中.添加后的目錄如下圖
3.MySQL默認使用log4j輸出日志信息.如果要查看控制臺的輸出SQL語句,需要在src目錄下創建log4j.properties文件
# Global logging configuration log4j.rootLogger=ERROR, stdout # MyBatis logging configuration... log4j.logger.com.mybatis.mapper=DEBUG # 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%n4.在src目錄下,創建一個com.mybatis.po包,在該包下創建持久化類Customer.實際上,Customer就是一個POJO(普通Java對象),Mybatis就是采用POJO作為持久化類來完成對數據庫的操作的.
package com.mybatis.po;public class Customer {private Integer id; // 主鍵idprivate String username; // 客戶名稱private String jobs; // 職業public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getJobs() {return jobs;}public void setJobs(String jobs) {this.jobs = jobs;}public Customer(Integer id, String username, String jobs) {super();this.id = id;this.username = username;this.jobs = jobs;}public Customer() {}@Overridepublic String toString() {return "Customer [id=" + id + ", username=" + username + ", jobs=" + jobs + "]";}}?5.在src目錄下,創建一個com.mybatis.mapper包,并在包中創建映射文件Customermapper.xml文件.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 根據客戶名編號查詢客戶信息列表 --> <mapper namespace="com.mybatis.mapper.CustomerMapper"><!-- 根據客戶編號獲取客戶信息 --><select id="findCustomerById" parameterType="Integer"resultType="com.mybatis.po.Customer">select * from user where id = #{id}</select><!-- 根據客戶名模糊查詢客戶信息列表 --><select id="findCustomerByName" parameterType="String"resultType="com.mybatis.po.Customer">select * from user where username like '%${value}%'</select><!-- 添加用戶信息 --><insert id="addCustomer"parameterType="com.mybatis.po.Customer">insert into user(id,username,jobs)values(#{id},#{username},#{jobs})</insert><!-- 更新用戶信息 --><update id="updateCustomer"parameterType="com.mybatis.po.Customer">update user setusername=#{username},jobs=#{jobs} whereid=#{id}</update><!-- 刪除客戶信息 --><delete id="deletetCustomer" parameterType="Integer">delete from userwhere id=#{id}</delete></mapper>6.?在src目錄下,創建Mybatis的核心配置文件mybatis-config.xml文件.
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><environments default="mysql"><environment id="mysql"><transactionManager type="JDBC" /><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><mappers><mapper resource="com/mybatis/mapper/CustomerMapper.xml" /></mappers> </configuration>7.在src目錄下,創建一個com.mybatis.test包,在該包下創建測試類MybatisTest,并在類中編寫各種測試方法.
package com.mybatis.test;import java.io.InputStream;import java.util.List;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 com.mybatis.po.Customer;/** 入門程序測試類*/public class MybatisTest {@Testpublic void findCustomerByNameTest() throws Exception {/** 根據客氣編號查詢客戶信息*/// 1.讀取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通過配置文件構建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通過SqlSessionFactory創建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.SqlSession執行映射文件中定義的SQL,并返回映射結果Customer customer = sqlSession.selectOne("com.mybatis.mapper.CustomerMapper" + ".findCustomerById", 2);// 打印輸出結果System.out.println(customer.toString());// 5.關閉SqlSessionsqlSession.close();}@Testpublic void findCustomerByNameTest2() throws Exception {/* 根據用戶名名稱來模糊查詢用戶信息列表 */// 1.讀取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通過配置文件構建 SqlSessionFactorySqlSessionFactory SqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通過SqlSessionFactory創建SqlSessionSqlSession sqlSession = SqlSessionFactory.openSession();// SqlSession執行映射文件中定義的SQl,并返回映射結果List<Customer> customers = sqlSession.selectList("com.mybatis.mapper.CustomerMapper" + ".findCustomerByName","a");for (Customer customer : customers) {// 打印輸出結果System.out.println(customer);}// 4.4提交事務sqlSession.commit();// 5.關閉sqlSessionsqlSession.close();}/** 添加客戶*/@Testpublic void addCustomerTest() throws Exception {// 1.讀取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通過配置文件構建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通過SqlSessionFactory創建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.SqlSession執行添加操作// 4.1創建Customer對象,并向對象中添加數據Customer customer = new Customer();customer.setId(5);// 每次添加時需要更改id的值customer.setUsername("Rose");customer.setJobs("公務員");// 4.2執行SqlSession的插入方法,返回的是SQL語句影響的行數int rows = sqlSession.insert("com.mybatis.mapper.CustomerMapper" + ".addCustomer", customer);// 4.3通過返回結果判斷插入操作是否執行成功if (rows > 0) {System.out.println("您成功插入了" + rows + "條數據!");} else {System.out.println("執行插入操作失敗!");}// 4.4提交事務sqlSession.commit();// 5.關閉sqlSessionsqlSession.close();}/** 更新客戶*/@Testpublic void updateCustomerTest() throws Exception {// 1.讀取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通過配置文件構建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通過SqlSessionFactory創建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.SqlSession執行添加操作// 4.1 創建Customer對象,對對象中的數據模擬更新Customer customer = new Customer();customer.setId(2);customer.setUsername("mack");customer.setJobs("教師");int rows = sqlSession.update("com.mybatis.mapper.CustomerMapper" + ".updateCustomer", customer);// 4.3通過返回結果判斷插入操作是否執行成功if (rows > 0) {System.out.println("您成功修改了" + rows + "條數據!");} else {System.out.println("修改操作失敗!");}// 4.4提交事務sqlSession.commit();// 5.關閉sqlSessionsqlSession.close();}/* 刪除客戶 */@Testpublic void deleteCustomerTest() throws Exception {// 1.讀取文件String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 2.通過配置文件構建 SqlSessionFactorySqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 3.通過SqlSessionFactory創建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 4.sqlSession執行刪除操作// 4.1執行sqlSession的刪除方法,返回的是SQL語句影響的行數int rows = sqlSession.delete("com.mybatis.mapper.CustomerMapper" + ".deletetCustomer", 3);if (rows > 0) {System.out.println("您成功刪除了" + rows + "條數據!");} else {System.out.println("刪除操作失敗!");}// 4.4提交事務sqlSession.commit();// 5.關閉sqlSessionsqlSession.close();}}8.選中每一個方法名,右擊使用JUnit4執行.可在控制臺查看輸出結果.
?3.Mybatis操作總結
?
總結
以上是生活随笔為你收集整理的Mybatis入门程序增删改查操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9个最佳花卉标识以及如何制作自己的[20
- 下一篇: idea中pom.xml文件横线解决办法