当前位置 : 主页 > 编程语言 > java >

MyBatis--ORM(对象关系映射)

来源:互联网 收集:自由互联 发布时间:2023-02-04
环境搭建 创建项目 导入jar包 mybatis包 数据库驱动包 其它依赖包 编写配置文件 DTD配置 ?xml version="1.0" encoding="utf-8"? !DOCTYPE configuration PUBLIC "-//mybait.org//DTD ccnfig 3.0//EN" "http://mybatis.org/dtd

环境搭建

创建项目

导入jar包

mybatis包

数据库驱动包

其它依赖包

编写配置文件

DTD配置

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE configuration PUBLIC "-//mybait.org//DTD ccnfig 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- properties加载外部文件 --> <properties resource="db.properties"></properties> <!--配置setting标签--> <settings> <!--设置mybaits使用log4j日志支持 --> <setting name="logImpl" value="LOG4J"/> </settings> <!--typeAliases标签,给类型起别名,缩短全限定路径 --> <typeAliases> <!-- 对指定的类定义别名 --> <typeAlias type="com.bjsxt.pojo.Users" alias="u"/> <!-- 不设置别名时,别名默认为类名,且不区分大小写 --> <typeAlias type="com.bjsxt.pojo.Users"/> <!-- 设置在包上,将把包下所有类自动设置别名,别名默认为类名 --> <package name="com.bjsxt.pojo"/> </typeAliases> <!-- 用于指定使用哪个环境 --> <environments default="dev"> <!-- 用于配置环境 --> <environment id="dev"> <!-- 事务管理器,设置 mybatis 使用什么方式来管理事务 type: JDBC表示采用和JDBC一样的管理方式 --> <transactionManager type="JDBC"></transactionManager> <!-- 数据库连接池,用于配置数据库连接池和连接参数 type: 用于设置mybatis是否采用连接池 POOLED 表示采用连接池技术--> <dataSource type="POOLED" # 引用properties外部配置文件中的参数 <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> <!-- 扫描映射文件,与数据访问层的xml全路径及文件名相同,使用resource加载--> <mappers> <mapper resource="com/bjsxt/mapper/UserMapper.xml"/> </mappers></configuration>

外部配置文件db.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/bjsxt?useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123456

定义POJO类

数据模型层

数据访问层(DAO层)

推荐使用mapper作为包名,这里只需要写映射配置文件 .xml

用于定义要执行的SQL语句,同时设定返回结果的类型

<?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"> <!-- namespace 命名空间,一般使用全限定路径,包名+类名 mybatis 管理sql语句,通过 namespace+id 来定位 --><mapper namespace="com.bjsxt.mapper.UserMapper"> <!-- select 标签用于编写查询语句, id: sql语句的唯一标识 resultType: 用于设定返回结果的类型(全限定路径),如果返回结果为集合,要写集合泛型的类型 --> <select id="selAll" resultType="com.bjsxt.pojo.Users"> select * from users </select></mapper>

执行查询

@Testpublic void selectAll(){ try { // 加载mybatis核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis.xml"); // 构建SqlSessionFactory工厂对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); List<Users> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll"); System.out.println(list); session.close(); } catch (IOException e) { e.printStackTrace(); }}

查询结果为列表

mapper名+id

List<Users> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll");

查询结果为单条记录

mapper名+id

Users user = session.selectOne("com.bjsxt.mapper.UserMapper.selAll");

查询结果为Map对象

mapper名+id, 指定列名作为map的键

Map<Object, Object> map = session.selectMap("com.bjsxt.mapper.UserMapper.selAll", "name");

LOG4J配置

log4j.rootLogger=INFO, Console, LOGFILE# 打印日志到控制台log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=[%p]-%d{ISO8601} : %m%n# 为指定方法设置日志级别log4j.logger.com.bjsxt.mapper.UserMapper.selOne=DEBUG# 为指定类设置日志级别log4j.logger.com.bjsxt.mapper.UserMapper=DEBUG# 为指定包设置日志级别log4j.logger.com.bjsxt.mapper=DEBUG# 打印日志到文件 log4j.appender.LOGFILE=org.apache.log4j.FileAppenderlog4j.appender.LOGFILE.File=log/log4j.loglog4j.appender.LOGFILE.Append=falselog4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.LOGFILE.layout.ConversionPattern=[%p]-%d{ISO8601} : %m%n

上一篇:Java--maven关闭maven自动执行test
下一篇:没有了
网友评论