一、MyBatis核心配置文件mybatis-config.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <configuration> 5 <environments default="mysql"> 6 <environment id="mysql"> 7 <transactionManager type="JDBC" /> 8 <dataSource type="POOLED"> 9 <property name="driver" value="com.mysql.jdbc.Driver" /> 10 <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> 11 <property name="username" value="root" /> 12 <property name="password" value="root" /> 13 </dataSource> 14 </environment> 15 </environments> 16 <mappers> 17 <mapper resource="com/itheima/mapper/CustomerMapper.xml" /> 18 </mappers> 19 </configuration>
二、映射文件×××Mapper.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="com.wxy.mapper.CustomerMapper"> 5 <!--查--> 6 <select id="findCustomerById" parameterType="Integer" 7 resultType="com.wxy.pojo.Customer"> 8 select * from customer where id = #{id} 9 </select> 10 <select id="findCustomerByName" parameterType="String" 11 resultType="com.wxy.pojo.Customer"> 12 select * from customer where username like concat('%',#{value},'%'); 13 </select> 14 <select id="findCustomer" parameterType="com.wxy.pojo.Customer" 15 resultType="com.wxy.pojo.Customer"> 16 select * from customer 17 </select> 18 <!--支持主键自增的数据库插入--> 19 <insert id="addCustomer" parameterType="com.wxy.pojo.Customer" 20 keyProperty="id" useGeneratedKeys="true" > 21 insert into customer(username,jobs,phone) 22 values(#{username},#{jobs},#{phone}) 23 </insert> 24 <!--不支持自增的数据库插入--> 25 <insert id="addCustomer2" parameterType="com.wxy.pojo.Customer"> 26 <selectKey keyProperty="id" order="AFTER" resultType="Integer"> 27 select last_insert_id() 28 </selectKey> 29 insert into customer(id,username,jobs,phone) 30 values(#{id},#{username},#{jobs},#{phone}) 31 </insert> 32 <!--改--> 33 <update id="updateCustomer" parameterType="com.wxy.pojo.Customer"> 34 update customer set 35 username=#{username},jobs=#{jobs},phone=#{phone} 36 where id=#{id} 37 </update> 38 <!--删--> 39 <delete id="deleteCustomer" parameterType="Integer"> 40 delete from customer where id=#{id} 41 </delete> 42 </mapper>
三、MyBatis工作原理
1 //1.读取配置文件 2 String resource = "mybatis-config.xml"; 3 InputStream inputStream = Resources.getResourceAsStream(resource); 4 //2.根据配置文件构建SqlSessionFactory 5 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 6 //3.通过SqlSessionFactory创建SqlSession 7 SqlSession sqlSession = sqlSessionFactory.openSession(); 8 //4.SqlSession执行映射文件中定义的SQL语句,并返回映射结果 9 //即:调用映射文件中不同的子元素id,执行相应的操作 10 { 11 Customer customer = sqlSession.selectOne("com.itheima.mapper" 12 + “.CustomerMapper.findCustomerById”, 1); 13 } 14 //5.关闭SqlSession 15 sqlSession.close();
log4j.properties日志文件:
log4j.rootLogger=ERROR, stdout
log4j.logger.com.wxy=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n