表user数据
生成数据库表相关文件
参考【maven web项目中整合ssm框架】中第6步(mybatis的generator自动生成工具)
文件路径
MybatisTest.java
package com.su.mybatis.mysql.controller;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.alibaba.fastjson.JSON;
import com.su.mybatis.mysql.dao.UserMapper;
import com.su.mybatis.mysql.model.User;
public class MybatisTest {
public static void main(String[] args) {
MybatisTest m = new MybatisTest();
m.getUserInfo();
}
public void getUserInfo() {
InputStream is = this.getClass().getClassLoader().getResourceAsStream("mybatisConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = factory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(1);
System.out.println("user:" + JSON.toJSONString(user));
}
}
main方法中几个类说明
SqlSessionFactoryBuilder:建造者模式读取配置信息创建SqlSessionFactory;
SqlSessionFactory:工厂单例模式创建Sqlsession;
SqlSession:一次数据库会话,即数据库连接,一般通过调用Mapper访问数据库,也可以直接发送SQL执行;
XXXMapper:Java接口和XML文件(SQL语句和结果集映射规则)。
注意: SqlSessionFactory的生命周期是程序的生命周期,其它类的生命周期都是方法级别的生命周期。
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>
<properties resource="mysql.properties" />
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="UNPOOLED">
<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>
<mappers>
<mapper url="file:///D://java/workspace/mybatis-mysql-demo/src/main/java/com/su/mybatis/mysql/mapping/UserMapper.xml" />
</mappers>
</configuration>
上面mapper标签属性参考【mappers标签引入映射器的四种方式】,由于xml文件不在src/main/resources目录下,使用第二种方式,之后会介绍下第一种方式。
输出结果
user:{"age":27,"id":1,"money":1000,"name":"su","phone":"18912341234"}
如果需要将xml文件生成在目录src/main/resources下,需要修改以下配置
1)、generatorConfig.xml
<!-- targetProject:mapper映射文件生成的位置(xml) -->
<sqlMapGenerator targetPackage="${target.mapping.path}"
targetProject="${target.xml.path}">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
2)、generator.properties
#xml文件存放路径
target.xml.path=src/main/resources
target.mapping.path=xml
3)、mybatisConfig.xml
<mappers>
<!-- <mapper url="file:///D://java/workspace/mybatis-mysql-demo/src/main/java/com/su/mybatis/mysql/mapping/UserMapper.xml" /> -->
<mapper resource="xml/UserMapper.xml" />
</mappers>
删除原来自动生成的与user相关的文件
运行MybatisTest中main方法,输出结果
user:{"age":27,"id":1,"money":1000,"name":"su","phone":"18912341234"}
如果有写的不对的地方,请大家多多批评指正,非常感谢!