MyBatis第一个应用程序
MyBatis:mybatis的使用逐渐上升,Hibernate使用逐渐下降。百度百科。本质是基于Java的持久层框架,通俗地讲就是访问持久状态的数据的一段程序,即是DAO.它的目的就是帮助程序员减少工作量和重复的代码编写,不用自己封装实体类。它的优点是代码量精简,编译代码较少,利用xml映射文件做应用程序访问数据库的接口,所以说它是半自动化的ORM框架。
如何使用MyBatis途径类型
- 利用Maven添加依赖
- 导入MyBatis相关jar包,新建lib,导入jar包和它的依赖包,mysql的jar包
公共步骤:
- 编写mybatis的核心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>
<!-- 配置运行环境 -->
<!-- default 表示默认使用哪一个环境,可以配置多个,比如开发时的测试环境,上线后的正式环境等 -->
<environments default="mysqlEM">
<environment id="mysqlEM">
<transactionManager type="JDBC">
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<environment id="testEM">
<transactionManager type="JDBC">
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 注册映射文件 -->
<mappers>
<mapper resource="mapper.xml"/>
</mappers>
</configuration>
- 创建sqlSessionFactory
- 创建sqlSession
InputStream ins;
//读取配置文件
ins = Resources.getResourceAsStream("mybatis.xml");
// 由于这个文件里面配置了mapper.xml,框架会帮我们扫描这些mapper.xml,下面是初始化一个SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(ins);
// 工厂会获取一个SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//以上代码可以单独创建一个util
- 创建实体类
package com.raydose;
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
- 编写mapper.xml映射文件,重点强调:mybatis是自动封装的
<?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="dao.IUser">
<!-- 自定义返回结果集 -->
<!--<resultMap id="UserMapper" type="com.raydose.User">
<id property="id" column="id" javaType="java.lang.Integer"></id>
<result property="name" column="name" javaType="java.lang.String"></result>
<result property="age" column="age" javaType="java.lang.Integer"></result>
</resultMap>-->
<select id="SUser" parameterType="int" resultType="com.raydose.User">
select * from users where id=#{id}
</select>
<!--resultMap="UserMapper"-->
</mapper>
//接口
package dao;
import com.raydose.User;
import java.io.IOException;
public interface IUser {
//接口和映射文件是对应的,映射文件多了一些sql语句,当然也可以通过在接口里写注解的方式,不必拘泥于xml文件一种方式
//我的参数写得不好,应该是要写int id 的
public User SUser(User user1) throws IOException;
}
- 测试
package com.raydose;
import dao.Operation;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
Operation operation = new Operation();
operation.SUser(new User());
}
}
数据库创建使用MySQL,很简单,就不再赘述了!
有啥问题直接在下方评论,我会经常回复。