Mybatis学习笔记-入门

来源:互联网 发布:sql查询分析器下载 编辑:程序博客网 时间:2024/05/18 02:09

wKioL1QnehLiyvHkAAEJiFP1d4g060.jpg

User.java实体类

public class User {private int id;private String username;private int age;//...}//数据库表对应实体类

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.mybatis.beans.userMapper"><!-- 根据id查询得到一个user对象 --> <select id="getUser" parameterType="int" resultType="com.mybatis.beans.User"> select * from users where id=#{id} </select></mapper>

conf.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><!-- development 开发模式work 工作模式 --><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/mybatis" /><property name="username" value="root" /><property name="password" value="123456" /></dataSource></environment></environments><mappers><mapper resource="com/mybatis/beans/userMapper.xml"/></mappers></configuration>


测试方法

import java.io.IOException;import java.io.Reader;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 Test {public static void main(String[] args) throws IOException {String resource = "conf.xml";//加载Mybatis的配置文件(它也加载关联的映射文件)Reader reader = Resources.getResourceAsReader(resource);//构建SqlSession的工厂SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);//创建能执行映射文件中SQL语句的SqlSession SqlSession session = sessionFactory.openSession();//映射SQL的标识字符串String s = "com.mybatis.beans.userMapper" + ".getUser";//执行查询返回一个唯一的User对象User user = session.selectOne(s, 3);//关闭sessionsession.close();System.out.println(user);}}

或者使用下面的方法测试

public  static void test() {String resource = "conf.xml";InputStream inputStream = Test.class.getClassLoader().getResourceAsStream(resource);SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession session = factory.openSession();String s = "com.mybatis.beans.userMapper" + ".getUser";User user = session.selectOne(s, 3);session.close();System.out.println(user);}

可以写一个工具类来获取SqlSessionFactory

import java.io.InputStream;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.mybatis.beans.Test;public class MybatisUtil {public static SqlSessionFactory getFactory() {String resource = "conf.xml";InputStream inputStream = Test.class.getClassLoader().getResourceAsStream(resource);SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);return factory;}}

可以将连接数据库的配置写到db.properties中

db.properties

jdbc.username=rootjdbc.password=123456jdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcUrl=jdbc:mysql://localhost:3306/mybatis

conf.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><!-- development 开发模式work 工作模式 --><properties resource="db.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${jdbc.driverClass}" /><property name="url" value="${jdbc.jdbcUrl}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><mappers><mapper resource="com/mybatis/beans/userMapper.xml"/></mappers></configuration>


添加log4j

①添加log4j-1.2.17.jar到类路径下

②添加log4j.xml到src下

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" /></layout></appender><logger name="java.sql"><level value="debug" /></logger><logger name="org.apache.ibatis"><level value="debug" /></logger><root><level value="debug" /><appender-ref ref="STDOUT" /></root></log4j:configuration>


当实体类的字段名和数据库表的字段名不一致时,用如下的两种方式来配置

<?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.atguigu.day03_mybaits.test4.orderMapper"><!-- ①根据id查询orders表得到一个order对象order_id  order_no  order_price 是数据库表中的字段id  orderNo  price 是实体类中的字段 --><select id="getOrder" parameterType="int" resultType="Order">SELECT order_id id, order_no orderNo, order_price price FROM orders WHERE order_id=#{id}</select><select id="getOrder2" parameterType="int" resultMap="getOrder2Map">SELECT * FROM orders WHERE order_id=#{id}</select><!--  ② 定义一个键值对映射resultMap : 封装一些映射关系id : 专门针对主键result : 针对一般字段--><resultMap type="Order" id="getOrder2Map"><id property="id" column="order_id"/><result property="orderNo" column="order_no"/><result property="price" column="order_price"/></resultMap></mapper>




http://yunpan.cn/cgwRwJYafX3sv  提取码 fad7

本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1558965

0 0
原创粉丝点击