先在pom.xml里写入要用的jar包
<?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.day530</groupId> <artifactId>com.day530</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <!-- jar的引用--> <dependencies> <!--mysql驱动jar包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.20</version> </dependency> <!--fastjson--> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </dependency> <!--junit单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--servlet的依赖--> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> </dependencies> </project>
1.mybatis文件
<?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> <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/vue?serverTimezone=Asia/Shanghai" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/UserMapper.xml" /> </mappers> </configuration>
2.log4j.properties
log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
3.测试例子
//1.读取mybatis配置文件的内容----未来不需要写tomcat 解析配置文件 Reader reader = Resources.getResourceAsReader("mybatis.xml"); //2. 获取SqlSessionFactory对象 SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader); //3. 获取SqlSession对象----封装了对数据库操作的各种方法 SqlSession session=factory.openSession(); //调用查询一个结果的接口 //String statement, 命名空间+id----指向sql标签 // Object parameter 需要实参 User user = session.selectOne("com.entry.User.getUser", 2); System.out.println(user); //4.关闭 session.close();
4.完善例子
Reader reader = Resources.getResourceAsReader("mybatis.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = factory.openSession(); SssDao mapper = session.getMapper(SssDao.class); Sss row = mapper.select(1); System.out.println(row); session.commit(); session.close();
5.mapper
<?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.www.dao.StudentDao"> <resultMap id="StuMapper" type="Student"> <!--主键的映射关系 column:列名 property:属性名--> <id column="stu_id" property="stuId"/> <!--普通列的映射关系--> <result column="stu_name" property="stuName"/> <result column="stu_age" property="stuAge"/> <result column="stu_sex" property="stuSex"/> <result column="stu_class" property="stuClass"/> </resultMap> <select id="findByLike" resultMap="StuMapper" > select * from student where stu_name like '%${a}%' <!-- concat('%',#{a},'%')--> </select> <sql id="sqlAll"> stu_id,stu_name,stu_sex,stu_age,stu_class </sql> <select id="findIds" resultMap="StuMapper" > select <include refid="sqlAll" /> from student where stu_id in <foreach collection="array" item="id" open="(" close=")" separator=","> #{id} </foreach> </select> <select id="findMInMax" resultMap="StuMapper" > <![CDATA[select * from student where stu_id>#{min} and stu_id<#{max}]]> </select> <insert id="insert"> insert into student(stu_name,stu_class) values <foreach collection="list" item="stu" separator=","> (#{stu.stuName},#{stu.stuClass}) </foreach> </insert> <delete id="deleteids" > delete from student where stu_id in <foreach collection="array" item="ids" open="(" close=")" separator=","> #{ids} </foreach> </delete> <update id="update" parameterType="arraylist"> update student <set> <if test="stuName!=null and stuName!=''"> stu_name=#{stuName}, </if> <if test="stuSex!=null and stuSex!=''"> stu_sex=#{stuSex}, </if> <if test="stuAge!=null and stuAge!=''"> stu_age=#{stuAge}, </if> <if test="stuClass!=null and stuClass!=''"> stu_class=#{stuClass} </if> </set> where stu_id=#{stuId} </update>
6.接口dao层
public void update(Student student); //public Student findOne(@Param("stuName") String stuName,@Param("stuAge") Integer stuAge); public List<Student> selectIf(@Param("stuName") String stuName,@Param("stuClass") String stuClass); public List<Student> selectChoose(@Param("stuName") String stuName,@Param("stuClass") String stuClass); public List<Student> selectWhere(@Param("stuName") String stuName,@Param("stuClass") String stuClass); public int insert(List<Student> student); public void deleteids(Integer[] array); public List<Student> findIds(Integer[] array); public List<Student> findByLike(@Param("a") String s); public List<Student> findMInMax(@Param("min") Integer min,@Param("max") Integer max);
7.Class类
private Integer stuId; private String stuName; private Integer stuSex; private Integer stuAge; private String stuClass;