MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
具有以下优点:(1)开源的优秀持久层框架;(2)SQL语句与代码分离;(3)面向配置的编程;(4)良好支持复杂数据映射;(5)动态SQL
无论是Hibernate或者Mybatis,都可以法相他们有共同点:(1)从配置文件(通常是XML配置文件中)得到sessionfactory;(2)由sessionfactory
产生 session;(3)在session中完成对数据的增删改查和事务提交等;(4)在用完之后关闭session;
具体言:每个MyBatis应用程序主要都是使用SqlSessionFactory实例,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
在java
对象和数据库之间有做mapping
的配置文件,也通常是xml文件
各种技术在MVC中的位置如下图:
下面贴出源代码:
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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/jikebook"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <mapper resource="jike/book/map/jikeUser.xml"/> </mappers> </configuration>
Student.xml
<?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="/"> <select id="findById" parameterType="int" resultType="com.hanchun.pojo.Student"> select * from management where id=#{id} </select> </mapper>
Student.java
package com.hanchun.pojo; /** *Student注意和数据库对应的表写成一一对应,否则会返回null值 */ public class Student { private int id; private String stu_name; private String stu_age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getStu_name() { return stu_name; } public void setStu_name(String stu_name) { this.stu_name = stu_name; } public String getStu_age() { return stu_age; } public void setStu_age(String stu_age) { this.stu_age = stu_age; } }
Test.java
package com.hanchun.test; import java.io.IOException; import java.io.Reader; import com.hanchun.pojo.Student; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test{ public static void main(String[] args) { // 注意写成路径的形式 String resource = "com/hanchun/map/MyBatisConfig.xml"; Reader reader = null; SqlSession session; try { reader = Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() .build(reader); session = sqlMapper.openSession(); Student temp = session.selectOne("findById", 3); System.out.println(temp.getStu_name()); session.close(); } }
最后程序运行结果:
欢迎讨论:http://blog.csdn.net/code_7
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 07:39:13