MyBatis(一)--查询MySQL表中信息
2015-10-30 16:16
507 查看
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis
消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis
使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
一、环境准备:
1、MySQL数据库(MySQL Server 5.1)
2、Navicat for MySQL(支持数据库的图形化界面)
3、mybatis-3.2.7.jar 、 mysql-connector-java-5.1.7-bin.jar(MySQL数据库驱动)
二、数据库准备:
创建数据库mybase,并创建表BOOK:
往BOOK表中添加信息:
三、新建JAVA项目,并导入mybatis和MySQL驱动JAR包:
在me.book.test包下新建conf.xml
在me.book.domain包下定义BOOK表对应的实体类Book.java
在me.book.mapping包下定义操作BOOK表的SQL映射文件bookMapper.xml
再去conf.xml中注册bookMapper.xml
运行结果,成功查询到数据库中ID=1的数据:
消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis
使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
一、环境准备:
1、MySQL数据库(MySQL Server 5.1)
2、Navicat for MySQL(支持数据库的图形化界面)
3、mybatis-3.2.7.jar 、 mysql-connector-java-5.1.7-bin.jar(MySQL数据库驱动)
二、数据库准备:
创建数据库mybase,并创建表BOOK:
往BOOK表中添加信息:
三、新建JAVA项目,并导入mybatis和MySQL驱动JAR包:
在me.book.test包下新建conf.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"> <!-- myBatis之xml映射配置 --> <transactionManager type="JDBC"/> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybase"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> </configuration>
在me.book.domain包下定义BOOK表对应的实体类Book.java
package me.book.domain; public class Book { private int id; private String name; private String author; private String date; 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 String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } @Override public String toString() { return "Book [id=" + id + ", name=" + name + ", author=" + author + ", date=" + date + "]"; } }
在me.book.mapping包下定义操作BOOK表的SQL映射文件bookMapper.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,namespace的值习惯上设置成包名+sql映射文件名--> <mapper namespace="me.book.mapping.bookMapper"> <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复--> <!-- 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 --> <!-- resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回 --> <!-- 根据id查询得到一个user对象--> <select id="getbook" parameterType="int" resultType="me.book.domain.Book"> select * from BOOK where ID=#{ID} </select> </mapper>
再去conf.xml中注册bookMapper.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"> <!-- myBatis之xml映射配置 --> <transactionManager type="JDBC"/> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybase"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> <mappers> <!-- 注册bookMapper.xml文件,该文件位于me/book/bookMapping包下 --> <mapper resource="me/book/mapping/bookMapper.xml"/> </mappers> </configuration>在me.book.test包中定义Test.java用于测试:
package me.book.test; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import me.book.domain.Book; public class Test { public static void main(String[] args) throws IOException{ //mybatis配置文件 String resource = "me/book/test/conf.xml"; //使用类加载器加载mybatis配置文件(它也加载关联的映射文件) InputStream is = Test.class.getClassLoader().getResourceAsStream(resource); //构建SqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //或是使用mybatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件) //Reader reader = Resources.getResourceAsReader(resource); //构建SqlSession的厂 //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); //创建能映射文件中sql的SqlSession SqlSession session = sessionFactory.openSession(); /** * 映射sql的表示字符串 * me.book.mapping.bookMapper是bookMapper.xml标签的namespace属性的值 * getbook是select标签的id属性值,通过select的id就可以找到要执行的SQL */ String statement = "me.book.mapping.bookMapper.getbook"; Book book = new Book(); book = session.selectOne(statement, 1); System.out.println(book); } }
运行结果,成功查询到数据库中ID=1的数据:
相关文章推荐
- mysql glossary
- mysql忘记密码,如何重新设置
- 数据库mysql导入数据
- Navicat for mysql 导出sql文件 导入sql文件
- MySQLite
- mysql 修改max_allowed_packet
- 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
- MYSQL: Cannot delete or update a parent row: a foreign key constraint fails
- 基于MYCAT的MYSQL主从与读写分离配置详解与示例
- 源码安装mysql-5.5.22
- 删除MySQL数据库
- mysql外键设置(待测试)
- mysql模糊查询
- mysql->函数
- MySQL索引使用方法和性能优化
- mysql查重语句
- mysql数据库安装过程中遇见的问题及解决办法
- MySQL Proxy 安装与读写分离体验
- 利用mysql的amoeba实现主从和读写分离
- MYSQL开发性能研究——批量插入的优化措施