mybatis的介绍
mybatis是一个支持普通SQL查询、存储过程、和高级映射的优秀的持久层ORM框架,开发者只需要关注SQL语句本身,而不需要花费精力去连接数据库的繁琐过程
ORM
ORM的全称是(Object/Relation Mapping)即对象/关系数据库映射,可以把ORM当做应用程序和数据库的桥梁,把关系型数据库包装成面向对象的模型,简单来说就是把数据库的表封装成一个实体类对象,通过实体类的属性一对一的把数据库的字段名对应上,以面向对象的方式来转换成底层的SQL操作,把持久层对象的保存,修改,添加,删除等操作,转换为对数据库的操作
MySQL的开发步骤
①添加MyBatis的jar包
②创建Student数据表
③编写Studentr实体类
④编写映射文件StudentMapper.xml
⑤编写核心文件MyBatisConfig.xml
⑥编写测试类
一、添加MyBatis的jar包
- mysql-connector-java-5.1.37-bin.jar(数据库连接)
- mybatis-3.5.3.jar(Mybatis)
- log4j-1.2.17.jar(日志)
二、创建数据表、编写实体类
数据表:
实体类
public class Student {
private Integer id;
private String name;
private Integer age;
//省略get个set方法、toString、构造器
}
三 编写MyBatis核心文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration 核心根标签-->
<configuration>
<!--配置日志文件-->
<settings>
<setting name="logImpl" value="log4j"/>
</settings>
<!--给实体类起别名-->
<typeAliases>
<typeAlias type="com.itheima.bean.Student" alias="student"/>
<!--<package name="com.itheima.bean"/>-->
</typeAliases>
<!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
<environments default="mysql">
<!--environment配置数据库环境 id属性唯一标识-->
<environment id="mysql">
<!-- transactionManager事务管理。 type属性,采用JDBC默认的事务-->
<transactionManager type="JDBC"></transactionManager>
<!-- dataSource数据源信息 type属性 连接池-->
<dataSource type="POOLED">
<!-- property获取数据库连接的配置信息 -->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3303/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- mappers引入映射配置文件 -->
<mappers>
<!-- mapper 引入指定的映射配置文件 resource属性指定映射配置文件的名称 -->
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>
四、编写StudentMapper.xml映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--MyBatis的DTD约束-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
mapper:核心根标签
namespace属性:名称空间
-->
<mapper namespace="StudentMapper">
<!--
select:查询功能的标签
id属性:唯一标识
resultType属性:指定结果映射对象类型
parameterType属性:指定参数映射对象类型
-->
<select id="selectAll" resultType="student">
SELECT * FROM student
</select>
</mapper>
四、编写测试代码
public static void main(String[] args) throws IOException {
//获取Mybatis核心配置文件,三种方式,
InputStream in = Thread.currentThread ().getContextClassLoader ().getResourceAsStream ("Mybatis-config.xml");
//二:InputStream ins = new FileInputStream (new File ("Mybatis-config.xml"));
//三:InputStream resourceAsStream = Resources.getResourceAsStream ("Mybatis-config.xml");
//创建SqlSessionFactory 对象,加载核心配置文件,
SqlSessionFactory ss = new SqlSessionFactoryBuilder ().build (in);
//调用openSession ()方法,创建与数据库的连接通道到,这一步是可以连接到数据库了
SqlSession sqlSession = ss.openSession ();
//调用select ()查询方法,
List<Object> list = sqlSession.selectList (“StudentMapper.selectAll”,"这里放实体类的路径");
System.out.println (list );
//配置文件又事务功能,要提交事务
sqlSession.commit ();
sqlSession.close ();
}
五、日志文件
在日常开发过程中,排查问题时难免需要输出 MyBatis 真正执行的 SQL 语句、参数、结果等信息,我们就可以借助 LOG4J 的功能来实现执行信息的输出,编写日志文件log4j.properties,内容为:
# Global logging configuration
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