MyBatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
添加pom依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
在resource目录下创建mybatis-config.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文件 -->
<properties resource="jdbc.properties" />
<!-- 定义类型别名,在xxxMapper.xml文件中就可以用别名代替很长的类名 -->
<!--<typeAliases>
<typeAlias type="com.lanou3g.mybatis.bean.Course" alias="Course" />
</typeAliases>-->
<!-- 配置不同环境的参数 -->
<environments default="development">
<!-- 开发环境数据库、事务配置 -->
<environment id="development">
<!-- 事务管理使用JDBC的事务 -->
<transactionManager type="MANAGED" />
<!-- 配置开发环境数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 将mapper SQL映射文件包含进来 -->
<mappers>
<mapper class="com.lanou3g.mybatis.dao.CourseDao"/>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
创建接口(通过注解实现sql语句的创建)
public interface CourseDao {
@Select("select * from course")
public List<Course> qureyAll();
}
(通过mapper实现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对应空Dao接口的全名 -->
<mapper namespace="com.lanou3g.mybatis.dao.StudentDao">
<!-- 此处的id是查询语句的名称,对应接口中的方法名 -->
<select id="queryAll" resultType="com.lanou3g.mybatis.bean.Student">
select * from student;
</select>
<insert id="insertInfo" >
insert into student values (#{sid},#{sname},#{sage},#{ssex},#{leaderid});
</insert>
<delete id="deleteInfo">
delete from student where sid = #{sid};
</delete>
<!--<update id="updateInfo">
update student set sname = #{sname} where sid = #{sid};
</update>-->
</mapper>
入口类
public class App
{
public static void main( String[] args ) throws IOException {
//读配置文件
InputStream in = Resources.getResourceAsStream("mybatis_config.xml");
//构建SqlSessionFactory(用于获取sqlSession)
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
//获取sqlSession对象(用于具体的CRUD)
SqlSession sqlSession = sessionFactory.openSession();
CourseDao courseDao = sqlSession.getMapper(CourseDao.class);
List<Course> courseList = courseDao.qureyAll();
System.out.println(courseList);
StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
List<Student> studentList = studentDao.queryAll();
log.debug(studentList.toString());
//System.out.println(studentList);
int a = studentDao.insertInfo(new Student(323,"htt",22,"男",123));
System.out.println(a);
int b = studentDao.deleteInfo(199);
// studentDao.updateInfo("谷雲杰",323);
}
}