生活随笔
收集整理的這篇文章主要介紹了
Mybatis开发CRUD
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 目錄結構
- 添加MyBatis的坐標及其他依賴
- 準備數據庫環境
- 編寫User實體類(提前安裝lombok插件并導入依賴)
- 編寫核心文件SqlMapConfig.xml
- 編寫映射文件UserMapper.xml
- 運行截圖
- CRUD操作
目錄結構
添加MyBatis的坐標及其他依賴
<dependencies><dependency><groupId>org.mybatis
</groupId><artifactId>mybatis
</artifactId><version>3.5.5
</version></dependency><dependency><groupId>mysql
</groupId><artifactId>mysql-connector-java
</artifactId><version>8.0.21
</version></dependency><dependency><groupId>junit
</groupId><artifactId>junit
</artifactId><version>4.13.1
</version><scope>test
</scope></dependency><dependency><groupId>org.projectlombok
</groupId><artifactId>lombok
</artifactId><version>1.18.14
</version><scope>provided
</scope></dependency><dependency><groupId>log4j
</groupId><artifactId>log4j
</artifactId><version>1.2.17
</version></dependency></dependencies>
準備數據庫環境
create database mybatis
;
use mybatis
;CREATE TABLE `user` (
`id
` int(11) NOT NULL AUTO_INCREMENT,
`username
` varchar(32) NOT NULL COMMENT '用戶名稱',
`sex
` char(1) DEFAULT NULL COMMENT '性別',
`address
` varchar(256) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
insert into `user` (`id
`, `username
`, `sex
`, `address
`)
values(NULL,'我愛羅','男','砂隱村');
insert into `user` (`id
`, `username
`, `sex
`, `address
`)
values(NULL,'由木人','女','云隱村');
insert into `user` (`id
`, `username
`, `sex
`, `address
`)
values(NULL,'矢倉','男','霧隱村');
insert into `user` (`id
`, `username
`, `sex
`, `address
`)
values(NULL,'老紫','男','巖隱村');
編寫User實體類(提前安裝lombok插件并導入依賴)
import lombok
.Data
;@Data
public class User {private Integer id
; private String username
;private String sex
;private String address
;
}
編寫核心文件SqlMapConfig.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="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url"value="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><mapper resource="UserMapper.xml"/></mappers>
</configuration>
編寫映射文件UserMapper.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="userMapper"><select id="findAll" resultType="com.byc.pojo.User">select * from user
</select>
</mapper>
編寫測試類
import com
.byc
.pojo
.User
;
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 java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.util
.List
;public class UserTest {@Testpublic void findAll() throws IOException
{InputStream inputStream
= Resources
.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream
);SqlSession sqlSession
= sqlSessionFactory
.openSession();List
<User> userList
= sqlSession
.selectList("userMapper.findAll");for (User user
: userList
) {System
.out
.println("user = " + user
);}sqlSession
.close();}
}
運行截圖
CRUD操作
插入
<insert id="insert" parameterType="com.byc.pojo.User">insert into user values (#{id},#{username},#{sex},#{address})
</insert>
import com
.byc
.pojo
.User
;
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 java
.io
.IOException
;
import java
.io
.InputStream
;public class UserTest {@Testpublic void insert() throws IOException
{InputStream inputStream
= Resources
.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream
);SqlSession sqlSession
= sqlSessionFactory
.openSession();User user
= new User();user
.setUsername("鳴人");user
.setSex("男");user
.setAddress("木葉村");int line
= sqlSession
.insert("userMapper.insert", user
);System
.out
.println("line = "+line
);sqlSession
.commit();sqlSession
.close();}
}
和上面不一樣的是mybatis提交數據的時候默認設置的是手動提交,所以在資源釋放之前需要增添資源提交的代碼sqlSession.commit();
由于在數據庫表結構中,設置用戶id是主鍵自增型,所以需要獲取并在程序中使用
2. 刪除
<delete id="delete" parameterType="java.lang.Integer">delete from user where id=#{id}
</delete>
import com
.byc
.pojo
.User
;
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 java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.util
.List
;public class UserTest {@Testpublic void delete() throws IOException
{InputStream inputStream
= Resources
.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream
);SqlSession sqlSession
= sqlSessionFactory
.openSession();sqlSession
.delete("userMapper.delete",2);sqlSession
.commit();sqlSession
.close();}
}
3. 更新
<update id="update" parameterType="com.byc.pojo.User">update user set username=#{username},sex=#{sex},address=#{address} where id=#{id}
</update>
import com
.byc
.pojo
.User
;
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 java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.util
.List
;public class UserTest {@Testpublic void update() throws IOException
{InputStream inputStream
= Resources
.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream
);SqlSession sqlSession
= sqlSessionFactory
.openSession();User user
= new User();user
.setId(7);user
.setUsername("jack");user
.setSex("男");user
.setAddress("?本");sqlSession
.update("userMapper.update",user
);sqlSession
.commit();sqlSession
.close();}
}
查詢
1)通過用戶ID
<select id="findById" parameterType="integer" resultType="com.byc.pojo.User">select * from user where id=#{id}
</select>
import com
.byc
.pojo
.User
;
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 java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.util
.List
;public class UserTest {@Testpublic void findById() throws IOException
{InputStream inputStream
= Resources
.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactory sqlSessionFactory
= new SqlSessionFactoryBuilder().build(inputStream
);SqlSession sqlSession
= sqlSessionFactory
.openSession();
User user
= sqlSession
.selectOne("userMapper.findById", 8);System
.out
.println("user = " + user
);sqlSession
.close();}
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Mybatis开发CRUD的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。