myBatis连接MySQL初级应用_01
2017-03-23 09:32
232 查看
1. myBatis的介绍:
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除
了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的
XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的
Java对象)映射成数据库中的记录。
jdbc --> connection statement preparedStatement ResultSet --封装结果集/sql
dbuti --> connection beanHandel BeanListHandler 能自动封装结果集 sql语句还在代码中,只能做单表的数据封装
(mybatis)-->不需要JDBC里面的接口,SQL统一写在配置文件,还能自动封装数据,支持多个表,支持缓存
需要SQL语句
hibernate --》不需要SQL语句,太重了
2. mybatis快速入门
a. 添加jar包
mybatis
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
mybatis-3.1.1.jar
slf4j-api-1.6.2.jar
slf4j-log4j12-1.6.2.jar
引用myeclipse自带的Junilt包
mysql驱动
mysql-connector-java-5.1.7-bin.jar
b.在总的配置文件中需要配置数据源,同样的数据源可以写死,也可以通过外置配置文件导入。
写死方式:
[align=left] <configuration>[/align]
[align=left] <environmentsdefault="development">[/align]
[align=left] <environmentid="development">[/align]
[align=left] <transactionManagertype="JDBC"/>[/align]
[align=left] <dataSourcetype="POOLED">[/align]
[align=left] <propertyname="driver"value="com.mysql.jdbc.Driver"/>[/align]
[align=left] <propertyname="url"value="jdbc:mysql://localhost:3306/mybatis"/>[/align]
<propertyname="username"value="root"/>
[align=left] <propertyname="password"value="jrh0617"/>[/align]
[align=left] </dataSource>[/align]
[align=left] </environment>[/align]
[align=left] </environments>[/align]
通过属性文件配置数据源的方式:
[align=left] <!-- 加载属性文件 -->[/align]
[align=left] <propertiesresource="classpath:db.properties">[/align]
<!--properties中还可以配置一些属性名和属性值
-->
<!-- <property name="jdbc.driver"
value=""/> -->
[align=left] </properties>[/align]
[align=left] <settings>[/align]
<!-- 设置默认日志记录log4j
-->
[align=left] <settingname="logImpl"value="LOG4J"/>[/align]
[align=left] </settings>[/align]
[align=left] <!-- 和spring整合后 environments配置将废除-->[/align]
[align=left] <environmentsdefault="development">[/align]
[align=left] <environmentid="development">[/align]
[align=left] <!-- 使用jdbc事务管理,事务控制由mybatis-->[/align]
[align=left] <transactionManagertype="JDBC"/>[/align]
[align=left] <!-- 数据库连接池,由mybatis管理-->[/align]
[align=left] <dataSourcetype="POOLED">[/align]
[align=left] <propertyname="driver"value="${jdbc.driver}"/>[/align]
[align=left] <propertyname="url"value="${jdbc.url}"/>[/align]
[align=left] <propertyname="username"value="${jdbc.username}"/>[/align]
<propertyname="password"value="${jdbc.password}"/>
[align=left] </dataSource>[/align]
[align=left] </environment>[/align]
</environments>
配置文件db.properties内容如下 :
jdbc.driver=com.mysql.jdbc.Driver
[align=left]jdbc.url=jdbc\:mysql\://localhost/mybatis[/align]
[align=left]jdbc.username=root[/align]
jdbc.password=jrh0617
c.通过mappers标签引入mapper标签:
[align=left] <mappers>[/align]
[align=left] <!-- 资源文件用/寻找路径 -->[/align]
<!-- <mapper resource="XML文件的包名+文件名"/>
-->
<!-- <mapper resource="jrh/mybatis/test2/UserMapping.xml"/>
-->
<!-- 通过注解方式,所以只要引入带注解的实体类路径就好 -->
[align=left] <mapperclass="jrh.mybatis.test3.UserMapper"></mapper>[/align]
[align=left] </mappers>[/align]
d.在**Mapping.xml子配置文件中配置相对用dao访问层抽象方法所对应的方法SQL
方法实体:
[align=left] String resource ="主配置文件.xml";[/align]
[align=left] //加载mybatis的配置文件(它也加载关联的映射文件)[/align]
[align=left] Reader reader = Resources.getResourceAsReader(resource);[/align]
[align=left] //构建sqlSession的工厂[/align]
[align=left] SqlSessionFactory sessionFactory =newSqlSessionFactoryBuilder().build(reader);[/align]
[align=left] //创建能执行映射文件中sql的sqlSession[/align]
[align=left] SqlSession session = sessionFactory.openSession();[/align]
[align=left] //映射sql的标识字符串[/align]
[align=left] String statement ="jrh.mybatis.test1.UserMapper"+".selectUser";//找到该命名空间下,ID为selectUser的标签。[/align]
[align=left] //执行查询返回一个唯一user对象的sql[/align]
[align=left] User user = (User) session.selectOne(statement, 1);[/align]
子配置文件:
<mappernamespace="对应抽象类的类路径">
<!-- 根据ID查询users表中对应的记录返回一个User对象
-->
[align=left] <selectid="selectUser唯一标识"parameterType="int传入参数的类型"resultType="jrh.mybatis.test1.User即SQL返回值对应的类型">[/align]
[align=left] select * from users where id = #{id}[/align]
[align=left] </select>[/align]
</mapper>
特别注意::
1. 在主配置文件的头部的文档类型必须是configuration,包括.dtd文件也是config类型的
2.在子配置文件中的头部文档类型必须输mapper型的,同样包含dtd文件
3.在对此配置文件的类型,返回值类型,一定要搞清楚是最终什么类型
主配置文件头部:
[align=left]<?xmlversion="1.0"encoding="UTF-8"?>[/align]
[align=left]<!DOCTYPEconfiguration[/align]
PUBLIC"-//mybatis.org//DTD
Config 3.0//EN"
[align=left]"http://mybatis.org/dtd/mybatis-3-config.dtd">[/align]
<configuration>
自配置文件头部:
<?xmlversion="1.0"encoding="UTF-8"?>
[align=left]<!DOCTYPEmapper[/align]
PUBLIC"-//mybatis.org//DTD
Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4.关于程序读取配置文件:
通过Resources等获取文件的位置--》再通过SqlSessionFactoryBuilder创建SqlSessionFactory--》创建能执行SQL的SqlSession
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除
了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的
XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的
Java对象)映射成数据库中的记录。
jdbc --> connection statement preparedStatement ResultSet --封装结果集/sql
dbuti --> connection beanHandel BeanListHandler 能自动封装结果集 sql语句还在代码中,只能做单表的数据封装
(mybatis)-->不需要JDBC里面的接口,SQL统一写在配置文件,还能自动封装数据,支持多个表,支持缓存
需要SQL语句
hibernate --》不需要SQL语句,太重了
2. mybatis快速入门
a. 添加jar包
mybatis
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
mybatis-3.1.1.jar
slf4j-api-1.6.2.jar
slf4j-log4j12-1.6.2.jar
引用myeclipse自带的Junilt包
mysql驱动
mysql-connector-java-5.1.7-bin.jar
b.在总的配置文件中需要配置数据源,同样的数据源可以写死,也可以通过外置配置文件导入。
写死方式:
[align=left] <configuration>[/align]
[align=left] <environmentsdefault="development">[/align]
[align=left] <environmentid="development">[/align]
[align=left] <transactionManagertype="JDBC"/>[/align]
[align=left] <dataSourcetype="POOLED">[/align]
[align=left] <propertyname="driver"value="com.mysql.jdbc.Driver"/>[/align]
[align=left] <propertyname="url"value="jdbc:mysql://localhost:3306/mybatis"/>[/align]
<propertyname="username"value="root"/>
[align=left] <propertyname="password"value="jrh0617"/>[/align]
[align=left] </dataSource>[/align]
[align=left] </environment>[/align]
[align=left] </environments>[/align]
通过属性文件配置数据源的方式:
[align=left] <!-- 加载属性文件 -->[/align]
[align=left] <propertiesresource="classpath:db.properties">[/align]
<!--properties中还可以配置一些属性名和属性值
-->
<!-- <property name="jdbc.driver"
value=""/> -->
[align=left] </properties>[/align]
[align=left] <settings>[/align]
<!-- 设置默认日志记录log4j
-->
[align=left] <settingname="logImpl"value="LOG4J"/>[/align]
[align=left] </settings>[/align]
[align=left] <!-- 和spring整合后 environments配置将废除-->[/align]
[align=left] <environmentsdefault="development">[/align]
[align=left] <environmentid="development">[/align]
[align=left] <!-- 使用jdbc事务管理,事务控制由mybatis-->[/align]
[align=left] <transactionManagertype="JDBC"/>[/align]
[align=left] <!-- 数据库连接池,由mybatis管理-->[/align]
[align=left] <dataSourcetype="POOLED">[/align]
[align=left] <propertyname="driver"value="${jdbc.driver}"/>[/align]
[align=left] <propertyname="url"value="${jdbc.url}"/>[/align]
[align=left] <propertyname="username"value="${jdbc.username}"/>[/align]
<propertyname="password"value="${jdbc.password}"/>
[align=left] </dataSource>[/align]
[align=left] </environment>[/align]
</environments>
配置文件db.properties内容如下 :
jdbc.driver=com.mysql.jdbc.Driver
[align=left]jdbc.url=jdbc\:mysql\://localhost/mybatis[/align]
[align=left]jdbc.username=root[/align]
jdbc.password=jrh0617
c.通过mappers标签引入mapper标签:
[align=left] <mappers>[/align]
[align=left] <!-- 资源文件用/寻找路径 -->[/align]
<!-- <mapper resource="XML文件的包名+文件名"/>
-->
<!-- <mapper resource="jrh/mybatis/test2/UserMapping.xml"/>
-->
<!-- 通过注解方式,所以只要引入带注解的实体类路径就好 -->
[align=left] <mapperclass="jrh.mybatis.test3.UserMapper"></mapper>[/align]
[align=left] </mappers>[/align]
d.在**Mapping.xml子配置文件中配置相对用dao访问层抽象方法所对应的方法SQL
方法实体:
[align=left] String resource ="主配置文件.xml";[/align]
[align=left] //加载mybatis的配置文件(它也加载关联的映射文件)[/align]
[align=left] Reader reader = Resources.getResourceAsReader(resource);[/align]
[align=left] //构建sqlSession的工厂[/align]
[align=left] SqlSessionFactory sessionFactory =newSqlSessionFactoryBuilder().build(reader);[/align]
[align=left] //创建能执行映射文件中sql的sqlSession[/align]
[align=left] SqlSession session = sessionFactory.openSession();[/align]
[align=left] //映射sql的标识字符串[/align]
[align=left] String statement ="jrh.mybatis.test1.UserMapper"+".selectUser";//找到该命名空间下,ID为selectUser的标签。[/align]
[align=left] //执行查询返回一个唯一user对象的sql[/align]
[align=left] User user = (User) session.selectOne(statement, 1);[/align]
子配置文件:
<mappernamespace="对应抽象类的类路径">
<!-- 根据ID查询users表中对应的记录返回一个User对象
-->
[align=left] <selectid="selectUser唯一标识"parameterType="int传入参数的类型"resultType="jrh.mybatis.test1.User即SQL返回值对应的类型">[/align]
[align=left] select * from users where id = #{id}[/align]
[align=left] </select>[/align]
</mapper>
特别注意::
1. 在主配置文件的头部的文档类型必须是configuration,包括.dtd文件也是config类型的
2.在子配置文件中的头部文档类型必须输mapper型的,同样包含dtd文件
3.在对此配置文件的类型,返回值类型,一定要搞清楚是最终什么类型
主配置文件头部:
[align=left]<?xmlversion="1.0"encoding="UTF-8"?>[/align]
[align=left]<!DOCTYPEconfiguration[/align]
PUBLIC"-//mybatis.org//DTD
Config 3.0//EN"
[align=left]"http://mybatis.org/dtd/mybatis-3-config.dtd">[/align]
<configuration>
自配置文件头部:
<?xmlversion="1.0"encoding="UTF-8"?>
[align=left]<!DOCTYPEmapper[/align]
PUBLIC"-//mybatis.org//DTD
Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
4.关于程序读取配置文件:
通过Resources等获取文件的位置--》再通过SqlSessionFactoryBuilder创建SqlSessionFactory--》创建能执行SQL的SqlSession
相关文章推荐
- 解决使用MySQL C-API开发应用时的连接超时问题
- Ubuntu环境变量的设置 && 桌面添加应用的快捷方式 && OTA服务器的搭建和发布 && 允许mysql远程连接
- 关于Mysql group_concat的应用(把相同ID的VAL用字符'/'连接起来)
- mysql,sql的Java连接方法(简单应用)执行sql查询与预处理
- 采用数据库连接池连接到mysql时,因应用中没有关闭ResultSet导致的memory leak问题
- Tomcat+MySQL应用中连接超时造成各种异常情况的处理
- Maven + Spring MVC+Mybatis + MySQL +AngularJS + Bootstrap 实现简单微博应用(一)环境搭建
- mybatis框架下java连接mysql,汉字乱码显示为“???”
- myBatis连接MySQL报异常:No operations allowed after connection closed.Connection was implicitly closed
- 【Nodejs】Nodejs连接Mysql初级操作CURD
- 应用访问Mysql遇到的连接问题
- 各应用服务器下MySQL连接参数配置
- MVC3、如何应用EntityFramework 连接MySql 数据库
- 在zend studio中应用配置PDO连接mysql
- 2、Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)
- mysql的左连接应用
- MySql连接.NET Framwork4.0 应用EF
- web编程1–用户注册之文本框应用,coon连接,存入mysql
- python之路-----web应用的创建(python3.4下,django连接mysql)
- javaApplication+mybatis+mysql简单的数据连接展示