`
gaojingsong
  • 浏览: 1210607 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论
阅读更多

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)修改删除验证

 

 



 



 

 

  • 大小: 82.8 KB
  • 大小: 85.9 KB
  • 大小: 91.8 KB
  • 大小: 89.6 KB
  • 大小: 58 KB
  • 大小: 60.1 KB
  • 大小: 58.5 KB
  • 大小: 72.1 KB
  • 大小: 38.8 KB
0
0
分享到:
评论

相关推荐

    ibatis_likehbm高效分页组件

    ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件 ibatis_likehbm高效分页组件 ibatis_likehbm...

    spring3.0+ibatis 集成实例

    Spring 3.0 和 iBatis 的集成是一个常见的企业级应用开发模式,它结合了Spring的强大依赖注入(DI)和面向切面编程(AOP)能力与iBatis灵活的SQL映射机制,实现了业务逻辑层与数据访问层的分离,提高了代码的可维护...

    spring+ibatis集成.chm

    spring+ibatis集成.chm spring ibatis 集成 chm java 个人学习收集网上资料辛苦整理而成

    spring+ibatis集成文档

    ### Spring与iBatis集成开发详解 #### 一、引言 在Java企业级应用开发领域,Spring框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐;而iBatis(现称为MyBatis)则以其简洁的SQL映射功能而闻名。...

    spring与hibernate以及ibatis集成的实例和具体配置图解

    "TestSpringIbatis"则可能是Spring与Ibatis集成的测试案例,展示了如何配置Ibatis的SqlSessionFactory和Mapper接口,以及如何在Spring中调用Ibatis的SQL查询。 集成Spring、Hibernate和Ibatis的过程通常包括以下...

    struts1.2 spring2 ibatis 集成项目实战源码

    Struts1.2、Spring2和iBatis是经典的Java Web开发框架,它们的集成可以构建出高效、灵活的企业级应用程序。在这个项目实战源码中,我们可以深入学习这三大框架如何协同工作,以及如何在实际开发中应用它们。 首先,...

    springMVC+ibatis+FreeMarker 连接 mycat 示例

    Mycat作为一款开源的分布式数据库中间件,旨在解决这些问题。在这个"springMVC+ibatis+FreeMarker 连接 mycat 示例"中,我们将探讨如何整合这四大技术,构建一个高效、可扩展的应用。 首先,SpringMVC是Spring框架...

    struts1+spring+hibernate+ibatis集成

    4. 集成iBatis/MyBatis:配置SqlMapConfig.xml,编写Mapper接口和XML映射文件,实现SQL查询的动态化。 5. 使用Spring管理Hibernate和iBatis:通过Spring的HibernateDaoSupport或SqlSessionTemplate来实现对持久层的...

    Spring与iBATIS的集成示例代码

    首先,集成Spring和iBATIS的关键在于配置。在Spring的配置文件(如`applicationContext.xml`)中,我们需要定义数据源、SQLMapClient以及SqlMapClientTemplate。数据源通常使用DataSource bean来创建,例如使用...

    springAnnotationMVC-ibatis集成

    标题中的“springAnnotationMVC-ibatis集成”指的是在Java Web开发中,Spring MVC框架与iBatis数据访问层框架的整合使用。Spring MVC是Spring框架的一个模块,主要用于处理Web应用的请求-响应流程,而iBatis则是一个...

    Spring与iBATIS的集成

    在软件开发领域,特别是Java企业级应用开发中,Spring框架和iBATIS(现已更名为MyBatis)是非常重要的两个技术组件。Spring作为一款全面的企业级应用解决方案,其核心功能包括依赖注入、面向切面编程以及容器管理等...

    spring和ibatis集成

    spring和ibatis集成开发的文档,非常值得相关的开发人员阅读!

    webwork+ibatis+spring oracle c3p0 集成框架

    WebWork、iBatis、Spring 和 Oracle C3P0 是四个在企业级Java应用开发中常用的组件,它们各自扮演着不同的角色,而将它们集成在一起可以构建一个高效、灵活且可扩展的后端系统。 1. WebWork:WebWork 是一个轻量级...

    spring.struts,ibatis集成包

    描述中提到的"还有很多常用的包"表明这个集成包不仅仅是Spring、Struts和iBATIS的基础组件,还包含了其他辅助库,如Groovy、CXF、Docx4j、Guava等。这些库在不同的场景下提供额外的功能支持。 1. Groovy-all-2.3.6....

    spring与ibatis整合集成实例

    9. **测试**:使用 Spring Test 和 MyBatis 提供的测试工具,可以编写单元测试和集成测试,确保每个组件都能正常工作。 以上就是 Spring 与 iBATIS 整合集成的主要步骤和知识点。通过这样的集成,可以利用 Spring ...

    struts2+spring2+ibatis集成

    Struts2、Spring2 和 iBatis 是三个在Java Web开发中广泛应用的开源框架,它们分别负责MVC架构中的控制层、服务层和数据访问层。这个集成项目,"SSITest",是为了帮助初学者理解和实践这三大框架的协同工作。 **...

    Spring+Ibatis集成开发实例.doc

    在Spring和iBatis的集成开发中,我们通常利用Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,结合iBatis的简单灵活的SQL映射功能,实现数据访问层的高效...

Global site tag (gtag.js) - Google Analytics