一、User package com.wlb.pojo; import com.sun.javafx.beans.IDProperty; import lombok.Data; @Data public class User { private Integer userid; private String username; private String address; private String sex; private Integer age; } 二、UserDao
package com.wlb.Dao; import com.wlb.pojo.User; import java.util.List; public interface UserDao { //根据id批量查询用户信息 List<User> findByIds(List<Integer> ids); //多条件查询 List<User> findByCondition(User user); //查(基于ID 查询用户) User findById(Integer id) ; //增 void save(User id); //删 void deleteById(Integer id); //改 void update(User id); //查(查询所有用户) List<User> findAll(); //查(基于name 模糊查询用户) List<User> findByName(String name); } 三、 UserDao.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.wlb.Dao.UserDao"> <!--SQ片段查询--> <sql id="selectUser"> userid,username,address,sex,age </sql> <!--插入数据--> <insert id="save" > insert into user values (#{userid},#{username},#{address},#{sex},#{age}) <selectKey keyProperty="userid" order="AFTER" resultType="integer"> select LAST_INSERT_ID() </selectKey> </insert> <!--更新数据--> <update id="update"> update user set username = #{username},address = #{address},sex = #{sex},age= #{age} where userid=#{userid} </update> <!--删除数据--> <delete id="deleteById" parameterType="integer"> delete from user where userid=#{id} </delete> <!--查询数据--> <select id="findById" resultType="com.wlb.pojo.User"> select*from user where userid=#{id} </select> <!--根据Id批量查询用户信息--> <select id="findByIds" resultType="com.wlb.pojo.User"> select* from user <where> <foreach collection="list" open="userid in(" close=")" item="userid" separator=","> #{userid} </foreach> </where> </select> <!--多条件查询--> <!--动态sql if查询--> <select id="findByCondition" resultType="com.wlb.pojo.User"> select *from user <where> <if test="username !=null"> username like CONCAT('%',#{username},'%') </if> <if test="sex !=null"> and sex=#{sex} </if> <if test="age !=null"> and age=#{age} </if> <if test="address !=null"> and address=#{address} </if> </where> </select> <!--查询所有用户信息--> <select id="findAll" resultType="com.wlb.pojo.User"> select <include refid="selectUser"></include> from user </select> <!--模糊查询,基于name模糊查询--> <select id="findByName" resultType="com.wlb.pojo.User"> select*from user username like CONCAT('%',#{username},'%') </select> </mapper>
四、jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mysql_01?useUnicode=true&characterEncoding=UTF-8&useSSL=false&use&serverTimezone=Asia/Shanghai jdbc.username=root jdbc.password=root
五、log4j.properties
#log4j日志级别如下: #A:off 最高等级,用于关闭所有日志记录。 #B:fatal 指出每个严重的错误事件将会导致应用程序的退出。 #C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。 #D:warn 表明会出现潜在的错误情形。 #E:info 一般和在粗粒度级别上,强调应用程序的运行全程。 #F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。 #G:all 最低等级,用于打开所有日志记录。 #但log4j只建议使用4个级别,优先级从高到低分别是: #error>warn>info>debug log4j.rootLogger=debug,systemOut,logFile #输出到控制台 log4j.appender.systemOut=org.apache.log4j.ConsoleAppender log4j.appender.systemOut.layout=org.apache.log4j.PatternLayout log4j.appender.systemOut.layout.ConversionPattern=%d [%t] %-5p %c - %m%n log4j.appender.systemOut.Target=System.out #输出到文件 log4j.appender.logFile=org.apache.log4j.FileAppender log4j.appender.logFile.layout=org.apache.log4j.PatternLayout log4j.appender.logFile.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n log4j.appender.logFile.File=log/log4j.log
六、MybatisConfig.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> <!--加载jdbc.properties的配置文件--> <properties resource="jdbc.properties"></properties> <!--类型别名--> <typeAliases> <package name="com.wlb.pojo"/> </typeAliases> <!--分页配置--> <plugins> <!--分页助手--> <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> </plugins> <!--配置数据的运行环境--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!--加载关联msql的映射文件--> <mappers> <mapper resource="com/wlb/Dao/UserDao.xml"/> </mappers> </configuration>
七、UserDaoTest
package com.wlb.Dao; import com.sun.org.apache.bcel.internal.generic.NEW; import com.wlb.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.ArrayList; import java.util.Collections; import java.util.List; public class UserDaoTest { @Test public void findByIds() throws IOException { //加载Mybatis核心配置文件 InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造SqSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); List<Integer> list = new ArrayList<>(); Collections.addAll(list, 1, 2, 3); List<User> userList = mapper.findByIds(list); for (User u : userList) { System.out.println("u=" + u); } } @Test public void findByCondition() throws IOException { //加载Mybatis核心配置文件 InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造SqSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //构造SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); User user = new User(); //user .setUsername("安"); //user.setSex("男"); //user.setAddress("山西"); user.setAge(20); List<User> userList = mapper.findByCondition(user); for (User users : userList) { System.out.println("users=" + users); } } @Test public void findById() throws IOException { //加载Mybatis核心配置文件 InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造SqSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); User user = mapper.findById(1); System.out.println(user); } @Test public void save() throws IOException { //加载mybatis的核心配置文件; InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造sqlSessionFactory对象; SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //构造SqlSession对象; SqlSession sqlSession = sqlSessionFactory.openSession(); //通过sqSession 获取Dao的接口对象; UserDao userDao = sqlSession.getMapper(UserDao.class); User user = new User(); user.setUserid(11); user.setUsername("欧阳修"); user.setAddress("江西"); user.setSex("男"); user.setAge(28); userDao.save(user); sqlSession.commit(); sqlSession.close(); } @Test public void deleteById() throws IOException { //加载mybatis的核心配置文件; InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造SqlSessionFactor工厂; SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //构造SqlSession对象; SqlSession sqlSession = sqlSessionFactory.openSession(); //通过SqlSession工具,获取Dao的接口对象; UserDao userDao = sqlSession.getMapper(UserDao.class); //执行sql语句; userDao.deleteById(11); //提交事务; sqlSession.commit(); //释放资源; sqlSession.close(); } @Test public void update() throws IOException { InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造SqSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通过⼯具类, 获取SQLSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); //通过SQLSession 获取指定dao接口的 代理对象 UserDao userDao = sqlSession.getMapper(UserDao.class); //通过dao接口的 代理对象, 调用执⾏dao层的⽅法 User user = new User(); user.setUserid(3); user.setUsername("李白"); user.setAddress("甘肃"); user.setSex("男"); user.setAge(30); userDao.update(user); //释放资源 sqlSession.commit(); sqlSession.close(); } @Test public void findAll() throws IOException { //加载Mybatis核心配置文件 InputStream inputStream = Resources.getResourceAsStream("MybatisConfig.xml"); //构造SqSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); UserDao mapper = sqlSession.getMapper(UserDao.class); List<User> userlist = mapper.findAll(); for (User user : userlist) { System.out.println("user=" + user); } } @Test public void findByName() { } }
八、pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wlb</groupId> <artifactId>CRUD_Mybatis</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> <dependencies> <!--mybatis坐标--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--mysql驱动坐标--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!--单元测试坐标--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--lombok坐标--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency> <!--日志坐标--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> <!--分页助手--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency> </dependencies> </project>
版权声明:本文为xaio_mage原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。