其实使用IBatis3.0注解,相等于把IBatis中的全局xml配置信息编程式开发,非全局xml配置针对实体的映射文件采用。注解开发,好了,言归正传吧。\(^o^)/~
IbatisSessionFactory 的代码重点如下:
注意看有颜色部分代码:
Java代码
1. package com.vnvtrip.search.ibatis.utils;
2.
3. import java.sql.Connection;
4. import java.util.Properties;
5. import java.util.logging.Logger;
6.
7. import javax.sql.DataSource;
8.
9. import org.apache.commons.dbcp.BasicDataSourceFactory;
10. import org.apache.ibatis.mapping.Environment;
11. import org.apache.ibatis.session.Configuration;
12. import org.apache.ibatis.session.ExecutorType;
13. import org.apache.ibatis.session.SqlSession;
14. import org.apache.ibatis.session.SqlSessionFactory;
15. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
16. import org.apache.ibatis.session.TransactionIsolationLevel;
17. import org.apache.ibatis.transaction.TransactionFactory;
18. import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
19.
20. import com.vnvtrip.search.ibatis.blog.model.BlogMapper;
21.
22. /**
23. *
24. *
25. * 创建类似Hibernate的HibernateSessionFactoryUtils的类
26. * @author longgangbai
27. *
28. */
29. @SuppressWarnings("serial")
30. public class IbatisSessionFactory implements SqlSessionFactory {
31.
32. public static final Logger LOG = Logger.getLogger(IbatisSessionFactory.class.getName());
33.
34. <span style="color: rgb(255, 0, 0);"> /**
35. * 针对特殊的应用
36. * 读取config.properties文件,存放了数据库连接参数等信息
37. */
38. private static final Properties props = new Properties() {
39. {
40. try {
41. load(IbatisSessionFactory.class.getResourceAsStream("jdbc.properties"));
42. } catch (Exception e) {
43. e.printStackTrace();
44. }
45. }
46. };</span>
47.
48. /** 根据参数得到某个具体的iBatis数据源工厂实例 */
49. public static SqlSessionFactory getInstance() {
50. if (sqlSessionFactory == null) {
51. try {
52. initSqlSessionFactory();
53. } catch (Exception e) {
54. e.printStackTrace();
55. }
56. }
57. return sqlSessionFactory;
58. }
59. <span style="color: rgb(153, 204, 0);"> /**
60. * 采用注解配置的方式
61. * @throws Exception
62. */
63. private static void initSqlSessionFactory() throws Exception {
64. //获取数据源
65. DataSource datasource = BasicDataSourceFactory.createDataSource(props);
66. //创建事务工厂
67. TransactionFactory transFactory = new JdbcTransactionFactory();
68. //获取上下文环境
69. Environment environment = new Environment("development",
70. transFactory, datasource);
71. //创建配置对象
72. Configuration config = new Configuration(environment);
73. //添加映射的类
74. config.addMapper(BlogMapper.class);
75. //构建的会话工厂
76. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
77. sqlSessionFactory = builder.build(config);
78.
79. }</span>
80.
81. // 真正“做事”的实例
82. private static SqlSessionFactory sqlSessionFactory = null;
83.
84. public Configuration getConfiguration() {
85. return sqlSessionFactory.getConfiguration();
86. }
87.
88. public SqlSession openSession() {
89. return sqlSessionFactory.openSession();
90. }
91.
92. public SqlSession openSession(boolean arg0) {
93. return sqlSessionFactory.openSession(arg0);
94. }
95.
96. public SqlSession openSession(Connection arg0) {
97. return sqlSessionFactory.openSession(arg0);
98. }
99.
100. public SqlSession openSession(ExecutorType arg0) {
101. return sqlSessionFactory.openSession(arg0);
102. }
103.
104. public SqlSession openSession(ExecutorType arg0, boolean arg1) {
105. return sqlSessionFactory.openSession(arg0, arg1);
106. }
107.
108. public SqlSession openSession(ExecutorType arg0, Connection arg1) {
109. return sqlSessionFactory.openSession(arg0, arg1);
110. }
111.
112. @Override
113. public SqlSession openSession(TransactionIsolationLevel arg0) {
114. return sqlSessionFactory.openSession(arg0);
115. }
116.
117. @Override
118. public SqlSession openSession(ExecutorType arg0,
119. TransactionIsolationLevel arg1) {
120. return sqlSessionFactory.openSession(arg0, arg1);
121. }
122. }
package com.vnvtrip.search.ibatis.utils;
import java.sql.Connection;
import java.util.Properties;
import java.util.logging.Logger;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.session.TransactionIsolationLevel;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import com.vnvtrip.search.ibatis.blog.model.BlogMapper;
/**
*
*
* 创建类似Hibernate的HibernateSessionFactoryUtils的类
* @author longgangbai
*
*/
@SuppressWarnings("serial")
public class IbatisSessionFactory implements SqlSessionFactory {
public static final Logger LOG = Logger.getLogger(IbatisSessionFactory.class.getName());
/**
* 针对特殊的应用
* 读取config.properties文件,存放了数据库连接参数等信息
*/
private static final Properties props = new Properties() {
{
try {
load(IbatisSessionFactory.class.getResourceAsStream("jdbc.properties"));
} catch (Exception e) {
e.printStackTrace();
}
}
};
/** 根据参数得到某个具体的iBatis数据源工厂实例 */
public static SqlSessionFactory getInstance() {
if (sqlSessionFactory == null) {
try {
initSqlSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
return sqlSessionFactory;
}
/**
* 采用注解配置的方式
* @throws Exception
*/
private static void initSqlSessionFactory() throws Exception {
//获取数据源
DataSource datasource = BasicDataSourceFactory.createDataSource(props);
//创建事务工厂
TransactionFactory transFactory = new JdbcTransactionFactory();
//获取上下文环境
Environment environment = new Environment("development",
transFactory, datasource);
//创建配置对象
Configuration config = new Configuration(environment);
//添加映射的类
config.addMapper(BlogMapper.class);
//构建的会话工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
sqlSessionFactory = builder.build(config);
}
// 真正“做事”的实例
private static SqlSessionFactory sqlSessionFactory = null;
public Configuration getConfiguration() {
return sqlSessionFactory.getConfiguration();
}
public SqlSession openSession() {
return sqlSessionFactory.openSession();
}
public SqlSession openSession(boolean arg0) {
return sqlSessionFactory.openSession(arg0);
}
public SqlSession openSession(Connection arg0) {
return sqlSessionFactory.openSession(arg0);
}
public SqlSession openSession(ExecutorType arg0) {
return sqlSessionFactory.openSession(arg0);
}
public SqlSession openSession(ExecutorType arg0, boolean arg1) {
return sqlSessionFactory.openSession(arg0, arg1);
}
public SqlSession openSession(ExecutorType arg0, Connection arg1) {
return sqlSessionFactory.openSession(arg0, arg1);
}
@Override
public SqlSession openSession(TransactionIsolationLevel arg0) {
return sqlSessionFactory.openSession(arg0);
}
@Override
public SqlSession openSession(ExecutorType arg0,
TransactionIsolationLevel arg1) {
return sqlSessionFactory.openSession(arg0, arg1);
}
}
jdbc.properties内容如下:
Java代码
1. driverClassName=com.mysql.jdbc.Driver
2. url=jdbc\:mysql\://localhost\:3306/search
3. username=root
4. password=123456
driverClassName=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/search
username=root
password=123456
Blog对应的映射文件Mapper文件:
针对insert,update,delete,select很简单忽略。
package com.vnvtrip.search.ibatis.blog.model;
import org.apache.ibatis.annotations.Select;
/**
*
* @author longgangbai
*
*/
public interface BlogMapper {
@Select("select * from blog where blogid=#{blogid}")
Blog findById(int id);
}
BlogDAO中的代码如下:
@Override
public Blog findById(Integer id) {
try {
BlogMapper mapper=getSqlSession().getMapper(BlogMapper.class);
return mapper.findById(id);
} finally{
getSqlSession().close();
}
}
分享到:
相关推荐
Spring+Struts2+Ibatis整合例子,jar太大不让上传,删除了,看配置文件吧
ibatis3.0中文文档和英文文档
ibatis_3.0_Dynamic_Sql_设计解析(并与2.x的差异)
struts1.2+batis+spring2.0+oracle集成例子自己刚学的,写得不太好请大家理解!
里面是搭建好的mybatis + maven + Spring4 的架构, 并提供了一个样例接口
struts1.2+batis+spring2.0+oracle集成例子自己刚学的比原来那个例子增加分页功能,我QQ是434342407希望和大家交个朋友,如果写得不好请大家理解!
batis 配置文件
一个挺实用spring mvc+my batis+dwz的示例
这个是初学 I batis学习的 , 我在网上找了很长时间都没有看到有 关于C#的Ibatis的例子,所以我上次了一个自己做的例子 供鸟儿们学习用。 全是自己写的,并且 很详
java_ibatis
在Eclipse下做的一个MyBatis的例子,对配置文件进行了注释,可供有兴趣了解的朋友参考
业务需要有很多表要创建相应的数据库pojo文件,mapper文件,和mapper.xml文件,再csdn资源上没有找到完整的maven项目,自己写了一个,直接用的,默认是,mysql,有用oracle的改下driverClass就可以了。 配置文件里的...
spring MVC spring my batis SSM框架工程 商城购物平台
本案例里面是springboot+mybatis+mysql 基于java配置类最少配置内容; application.properties文件中配置mysql的相关配置自动装配到spring 里面然后只需要配置mybatis 的相关配置即可.
本书介绍了 Java EE 领域的两个开源框架: Spring的MVC 和 MyBatis。其中 Spring的版本为 4.2, My Batis的版本是 3.4o 本书的示例建议在 Tomcat 8 上运行。
该工具是用来通过generator-batis.xml来生成相关实体类和数据库接口类,里面附有使用说明,但是xml配置需要查阅一定的资料,里面有启动脚本run.bat。会把代码生成到您指定的路径。
BATIS 2.0 开发指南 V1.0 作者:夏昕 xiaxin(at)gmail.com
基于SpringMVC及MyBatis的Web应用框架研究
spring+mybatis企业应用实战 疯狂软件系列 ,高清pdf。
让你看看工具的强大