【工程目录】
【数据库表中内容 user表】
【sqlMapConfig.xml配置文件主要内容】
简述:sqlMapConfig.xml配置文件主要有两个作用:
1.配置和数据连接的相关信息,例如事务管理、数据库连接池等信息。
2.加载映射文件,例如本项目中的user.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 7 <!-- 和Spring整合之后这些配置将删除 --> 8 <environments default="development"> 9 <environment id="development"> 10 <!-- 使用jdbc事务管理 --> 11 <transactionManager type="JDBC" /> 12 <!-- 数据库连接池 --> 13 <dataSource type="POOLED"> 14 <property name="driver" value="com.mysql.jdbc.Driver"/> 15 <property name="url" 16 value="jdbc:mysql://localhost:3306/mybatisdb?useUnicode=true&characterEncoding=UTF-8" /> 17 <property name="username" value="root"/> 18 <property name="password" value=""/> 19 </dataSource> 20 </environment> 21 </environments> 22 23 <!-- 加载映射文件 --> 24 <mappers> 25 <mapper resource="sqlmap/user.xml"/> 26 </mappers> 27 28 </configuration>
【user.xml】
在user.xml文件中编写相关的CRUD的代码
<?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="test"> <select id="findUserById" parameterType="int" resultType="com.Higgin.Mybatis.po.User"> SELECT * from USER WHERE id=#{id} </select> </mapper>
解释:
1.namespace命名空间,作用就是对sql进行分类化管理。注意:使用mapper代理方法开发,namespace有特殊重要的作用。
2.在<mapper>映射文件中可以配置很多的sql语句,除了<select>还有<delete>、<update>、<insert>等等
3.通过select 执行数据库查询,将sql语句封装到mapperStatement对象中,所以将id成为statement的id
4.parameterType:指定输入参数的类型,这里指定是int类型
5.#{}:表示一个占位符
6.#{id}:其中的占位符表示接入输入的参数,参数名称为id,若输入的参数是简单类型,#{}中的参数名称可以任意,既可以是value或者其他名称
7.resultType:指定sql输出结果所映射的java类型对象,select指定resultType表示将单条记录映射成的User对象
【log4j.properties】
#Global logging configuration #在开发环境下,日志级别要设置成DEBUG log4j.rootLogger=DEBUG,stdout #Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
【User.java】
1 package com.Higgin.Mybatis.po; 2 3 import java.util.Date; 4 5 public class User { 6 //属性名和数据库表字段对应 7 private int id; 8 private String username; 9 private String sex; 10 private Date birthday; 11 private String address; 12 //忽略get、set、toString方法.... 13 }
【MyBatisTest.java】
public class MyBatisTest { @Test public void testFindUserByID() throws IOException{ //mybatis配置文件 String resource="SqlMapConfig.xml"; //得到配置文件 InputStream inputStream=Resources.getResourceAsStream(resource); //创建会话工厂,传入mybatis的配置文件信息 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); //通过工厂得到SqlSession SqlSession sqlSession=sqlSessionFactory.openSession(); //通过SqlSession操作数据库 //第一个参数:映射文件中statement的id,等于:namespace+"."+statement的id //第二个参数:指定映射文件中的所匹配的parameterType类型的参数 User user=sqlSession.selectOne("test.findUserById", 2); System.out.println(user.toString()); //释放资源 sqlSession.close(); } }
【运行结果】
时间: 2024-10-25 05:35:58