ibatis集成mycat服务
一、首先搞定ibatis
1)定义数据库配置文件
<?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 resource="db.properties"></properties>
<!-- mybatis别名定义 -->
<typeAliases>
<typeAlias alias="User" type="com.mybatis.test.User"/>
</typeAliases>
<!-- 注册对象的空间命名 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- 1.加载数据库驱动 -->
<property name="driver" value="${db1.driver}" />
<!-- 2.数据库连接地址: -->
<property name="url" value="${db1.url}" />
<!-- 数据库用户... -->
<property name="username" value="${db1.username}" />
<!-- 数据库密码... -->
<property name="password" value="${db1.password}" />
</dataSource>
</environment>
</environments>
<!-- 注册映射文件:java对象与数据库之间的xml文件路径! -->
<mappers>
<mapper resource="User.xml"/>
</mappers>
</configuration>
2)定义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">
<mapper namespace="com.mybatis.test">
<!-- select语句 -->
<select id="selectUserByID" parameterType="int" resultType="User">
select * from `t_user` where id = #{id}
</select>
<select id="selectAllUsers" resultType="User">
select * from t_user
</select>
<insert id="addUser" parameterType="User" >
insert into t_user(id,userName) values(#{id},#{userName})
</insert>
<update id="updateUser" parameterType="User" >
update t_user set userName=#{userName} where id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
delete from t_user where id=#{id}
</delete>
</mapper>
3)集成关键db.properties,可以配置多数据源
db1.driver = com.mysql.jdbc.Driver
db1.url =jdbc:mysql://localhost:8066/TESTDB
db1.username =root
db1.password =root
db2.driver = oracle.jdbc.driver.OracleDriver
db2.url =jdbc:oracle:thin:@localhost:1521:TESTDB
db2.username =root
db2.password =root
db3.driver = com.mysql.jdbc.Driver
db3.url =jdbc:mysql://localhost:8066/db3
db3.username =root
db3.password =root
4)测试代码
package cn.com.test;
import java.io.Reader;
import java.util.List;
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 com.mybatis.test.User;
public class SqlSessionUtil {
private static final String NS = "com.mybatis.test.";
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static {
try {
reader = Resources.getResourceAsReader("ibatis_config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}
public User getUserByID(int userID) {
SqlSession session = sqlSessionFactory.openSession();
try {
User user = session.selectOne(NS + "selectUserByID", userID);
if (user != null) {
System.out.println(user.getId() + ":" + user.getUserName());
}
return user;
} finally {
session.close();
}
}
public void addUser(User user) {
SqlSession session = sqlSessionFactory.openSession();
try {
int cc = session.insert(NS + "addUser", user);
System.out.println("add" +cc + " OK ");
} finally {
session.close();
}
}
public void delete(int id ) {
SqlSession session = sqlSessionFactory.openSession();
try {
int cc = session.delete(NS + "deleteUser", id);
System.out.println("delete" +cc + " OK ");
} finally {
session.close();
}
}
public void update(User user) {
SqlSession session = sqlSessionFactory.openSession();
try {
int cc = session.update(NS + "updateUser", user);
System.out.println("update" +cc + " OK ");
} finally {
session.close();
}
}
public void getUserList() {
SqlSession session = sqlSessionFactory.openSession();
try {
List<User> users = session.selectList(NS + "selectAllUsers");
for (User user : users) {
System.out.println(user.getId() + ":" + user.getUserName());
}
} finally {
session.close();
}
}
public static void main(String[] args) {
SqlSessionUtil su = new SqlSessionUtil();
System.out.println(su.getSession());
//User user = new User(10,"张仨疯");
//su.addUser(user);
//
//user = new User(2,"gaojingsong");
//su.addUser(user);
User user = su.getUserByID(10);
System.out.println("--------getUserList---------");
su.getUserList();
user.setUserName("test_mycat");
su.update(user);
su.delete(1);
}
}
附件:
附件解压密码:525354786
建表语句:
CREATE TABLE `t_user` (
`id` int NULL ,
`userName` varchar(100) NULL ,
PRIMARY KEY (`id`)
)
;
select * from t_user
错误解析
1)schema没有定义表
2)schema定义表,数据库中没有建立表,报片键不存在
3)新建表,发现mycat新的bug
二、验证结果
1)增加
2)查询单个和列表
3)修改删除
4)修改删除验证
相关推荐
ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件 ibatis_likehbm高效分页组件 ibatis_likehbm...
Spring 3.0 和 iBatis 的集成是一个常见的企业级应用开发模式,它结合了Spring的强大依赖注入(DI)和面向切面编程(AOP)能力与iBatis灵活的SQL映射机制,实现了业务逻辑层与数据访问层的分离,提高了代码的可维护...
spring+ibatis集成.chm spring ibatis 集成 chm java 个人学习收集网上资料辛苦整理而成
### Spring与iBatis集成开发详解 #### 一、引言 在Java企业级应用开发领域,Spring框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐;而iBatis(现称为MyBatis)则以其简洁的SQL映射功能而闻名。...
"TestSpringIbatis"则可能是Spring与Ibatis集成的测试案例,展示了如何配置Ibatis的SqlSessionFactory和Mapper接口,以及如何在Spring中调用Ibatis的SQL查询。 集成Spring、Hibernate和Ibatis的过程通常包括以下...
Struts1.2、Spring2和iBatis是经典的Java Web开发框架,它们的集成可以构建出高效、灵活的企业级应用程序。在这个项目实战源码中,我们可以深入学习这三大框架如何协同工作,以及如何在实际开发中应用它们。 首先,...
Mycat作为一款开源的分布式数据库中间件,旨在解决这些问题。在这个"springMVC+ibatis+FreeMarker 连接 mycat 示例"中,我们将探讨如何整合这四大技术,构建一个高效、可扩展的应用。 首先,SpringMVC是Spring框架...
4. 集成iBatis/MyBatis:配置SqlMapConfig.xml,编写Mapper接口和XML映射文件,实现SQL查询的动态化。 5. 使用Spring管理Hibernate和iBatis:通过Spring的HibernateDaoSupport或SqlSessionTemplate来实现对持久层的...
首先,集成Spring和iBATIS的关键在于配置。在Spring的配置文件(如`applicationContext.xml`)中,我们需要定义数据源、SQLMapClient以及SqlMapClientTemplate。数据源通常使用DataSource bean来创建,例如使用...
标题中的“springAnnotationMVC-ibatis集成”指的是在Java Web开发中,Spring MVC框架与iBatis数据访问层框架的整合使用。Spring MVC是Spring框架的一个模块,主要用于处理Web应用的请求-响应流程,而iBatis则是一个...
在软件开发领域,特别是Java企业级应用开发中,Spring框架和iBATIS(现已更名为MyBatis)是非常重要的两个技术组件。Spring作为一款全面的企业级应用解决方案,其核心功能包括依赖注入、面向切面编程以及容器管理等...
spring和ibatis集成开发的文档,非常值得相关的开发人员阅读!
WebWork、iBatis、Spring 和 Oracle C3P0 是四个在企业级Java应用开发中常用的组件,它们各自扮演着不同的角色,而将它们集成在一起可以构建一个高效、灵活且可扩展的后端系统。 1. WebWork:WebWork 是一个轻量级...
描述中提到的"还有很多常用的包"表明这个集成包不仅仅是Spring、Struts和iBATIS的基础组件,还包含了其他辅助库,如Groovy、CXF、Docx4j、Guava等。这些库在不同的场景下提供额外的功能支持。 1. Groovy-all-2.3.6....
9. **测试**:使用 Spring Test 和 MyBatis 提供的测试工具,可以编写单元测试和集成测试,确保每个组件都能正常工作。 以上就是 Spring 与 iBATIS 整合集成的主要步骤和知识点。通过这样的集成,可以利用 Spring ...
Struts2、Spring2 和 iBatis 是三个在Java Web开发中广泛应用的开源框架,它们分别负责MVC架构中的控制层、服务层和数据访问层。这个集成项目,"SSITest",是为了帮助初学者理解和实践这三大框架的协同工作。 **...
在Spring和iBatis的集成开发中,我们通常利用Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,结合iBatis的简单灵活的SQL映射功能,实现数据访问层的高效...