mybatis中使用XML配置文件方式实现CRUD模板流程
場景
Eclipse+Mybatis3.4+log4j1.2+mysql5.7
使用新手入門學習Mybatis時實例模板。
實現
Eclipse中新建項目
1.打開EClipse,File--new--java Project,名字叫做MybatisTemplate,點擊Finish。
2.然后右擊項目--Build Path--Config Build Path
3.選擇Libraries下的Add External JARs
4.選擇mybatis的jar包、log4j的jar包、連接mysql所需要的jar包
jar包下載:https://github.com/badaoliumang/jarPackageCollection
5.然后點擊Apply--Apply and Close
6.新建包,目錄如下
7.新建配置文件log4j.properties(log4j日志配置文件)、mybatis-config.xml(mybatis配置文件),目錄如下
創建數據庫
1.新建數據庫ssmTemplate
2.新建表User,字段如下,注意id是自增主鍵。
代碼實現
1.pojo包下新建User.java
package com.badao.ssm.ssmTemplate.pojo;public class User {private int id;private String userName;private String remark;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}}2.mapper包新建UserMapper.java接口
package com.badao.ssm.ssmTemplate.mapper;import java.util.List;import com.badao.ssm.ssmTemplate.pojo.User;public interface UserMapper {public int insertUser(User user);public int deleteUser(int id);public int updateUser(User user);public User getUser(int id);public List<User> findUsers(String userName); }3.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.badao.ssm.ssmTemplate.mapper.UserMapper"><insert id="insertUser" parameterType="user" useGeneratedKeys="true" keyProperty="id">insert into User(userName, remark) values(#{userName}, #{remark})</insert><delete id="deleteUser" parameterType="int">delete from User where id= #{id}</delete><update id="updateUser" parameterType="user">update User set userName = #{userName}, remark = #{remark} where id= #{id}</update><select id="getUser" parameterType="int" resultType="user">select id,userName as userName, remark from User where id = #{id}</select><select id="findUsers" parameterType="string" resultType="user">select id, userName as userName, remark from Userwhere userName like concat('%', #{userName}, '%')</select> </mapper>?
其中namespace屬性要與接口的全路徑一樣,即包名加接口名。
注意id為自增主鍵,所以針對于mybatis要配置:
seGeneratedKeys="true" keyProperty="id"
?
4.配置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"> <configuration><typeAliases><!-- 別名 --><typeAlias alias="user" type="com.badao.ssm.ssmTemplate.pojo.User"/></typeAliases><!-- 數據庫環境 --><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/ssmTemplate"/><property name="username" value="root"/><property name="password" value=""/></dataSource></environment></environments><!-- 映射文件 --><mappers><mapper resource="com/badao/ssm/ssmTemplate/mapper/UserMapper.xml"/></mappers> </configuration>注:
別名配置是為了以后在別的地方用的時候不用寫太長的別名。
映射文件要與上面的mapper文件所在的位置相對應。
5.配置log4j.properties
log4j.rootLogger=DEBUG , stdout log4j.logger.org.mybatis=DEBUG log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n6.配置SqlSessionFactoryUtils類
package com.badao.ssm.ssmTemplate.utils;import java.io.IOException;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;public class SqlSessionFactoryUtils {private final static Class<SqlSessionFactoryUtils> LOCK = SqlSessionFactoryUtils.class;private static SqlSessionFactory sqlSessionFactory = null;private SqlSessionFactoryUtils() {}public static SqlSessionFactory getSqlSessionFactory() {synchronized (LOCK) {if (sqlSessionFactory != null) {return sqlSessionFactory;}String resource = "mybatis-config.xml";InputStream inputStream;try {inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();return null;}return sqlSessionFactory;}}public static SqlSession openSqlSession() {if (sqlSessionFactory == null) {getSqlSessionFactory();}return sqlSessionFactory.openSession(true);} }測試CRUD
1.新建MybatisMain.java 用于測試CRUD
package com.badao.ssm.ssmTemplate.main; import java.util.List;import org.apache.ibatis.session.SqlSession; import org.apache.log4j.Logger;import com.badao.ssm.ssmTemplate.mapper.UserMapper; import com.badao.ssm.ssmTemplate.pojo.User; import com.badao.ssm.ssmTemplate.utils.SqlSessionFactoryUtils; public class MybatisMain {public static void main(String[] args) {testUserMapper();}private static void testUserMapper() {Logger log = Logger.getLogger(MybatisMain.class);SqlSession sqlSession = null;try {sqlSession = SqlSessionFactoryUtils.openSqlSession();UserMapper userMapper = sqlSession.getMapper(UserMapper.class);//測試查詢/*Role role = roleMapper.getRole(1l);log.info(role.getRoleName());*///測試更新/*Role role3 = new Role();role3.setId(1l);role3.setRoleName("YSH");role3.setNote("測試更新");int updateResult = roleMapper.updateRole(role3);*///測試插入/*testInsert();User user =new User();user.setUserName("霸道");user.setRemark("測試");int insertResult = userMapper.insertUser(user);if(insertResult == 0) {System.out.println("插入失敗");log.info("插入失敗");}else {System.out.println("插入成功");log.info("插入成功");}*///測試查詢/*User user2 = userMapper.getUser(1);log.info("查詢到的用戶名為:"+user2.getUserName());*///測試更新/*User user3 = new User();user3.setId(1);user3.setUserName("霸道------");user3.setRemark("更新成功了");int updateResult = userMapper.updateUser(user3);if(updateResult == 0) {System.out.println("更新失敗");log.info("更新失敗");}else {System.out.println("更新成功");log.info("更新成功");}*///測試刪除/*int deleteResule = userMapper.deleteUser(1);if(deleteResule == 0) {System.out.println("刪除失敗");log.info("刪除失敗");}else {System.out.println("刪除成功");log.info("刪除成功");}*///測試模糊查詢/*List<User> userList = userMapper.findUsers("霸");for (User user : userList) {System.out.println(user.getUserName());}*/} finally {if (sqlSession != null) {sqlSession.close();}}}private static void testInsert() {// TODO Auto-generated method stub}}2.測試插入
2.測試查詢
3.測試更新
4.測試刪除
5.測試模糊查詢
項目下載
github:
https://github.com/badaoliumang/SSMCodeCollection/tree/master/MybatisTemplate
項目總目錄
總結
以上是生活随笔為你收集整理的mybatis中使用XML配置文件方式实现CRUD模板流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis针对mysql自增主键怎样
- 下一篇: Vue中怎样获取json文件中的数据