Ibatis基础配置使用

来源:互联网 发布:apache thrift book 编辑:程序博客网 时间:2024/05/22 17:18

ibatis的使用

ibatis基本jar包

ibatis-xx .jarmysql-connector.jar

配置文件:

实体类的xml配置

---------和实体类、表操作相关的xml配置,完成增删改查-----------#name#和#pwd#对应User实体类中的属性名.再需要注意的是,在ibatis和mybatis中,namespace都很重要,它是上级配置文件找到该实体xml文件的节点。具体作用,看下边实现类中解释。<sqlMap namespace="userMy"><!-- 别名--><typeAlias alias="user" type="model.User"/><!-- parameterClass 传值类型 id为操作的标识,在实现类中使用--><insert id="addUser" parameterClass="user">    insert into user (name,pwd) values(#name#,#pwd#);</insert><delete id="deleteUser" parameterClass="java.lang.Integer">    delete from user where id=#id#</delete><update id="updateUser" parameterClass="user">    update user set name=#name#,pwd=#pwd# where id=#id#</update><!-- resultClass:返回类型 --><select id="quaryAll"  resultClass="user">    select * from user</select></sqlMap> 

sqlMapConfig.xml:

<sqlMapConfig> <!--1.配置事务管理,主要参数:数据源 --><transactionManager type="JDBC">    <dataSource type="SIMPLE">    <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />    <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/yourdb" />    <property name="JDBC.Username" value="root" />    <property name="JDBC.Password" value="root" /></dataSource></transactionManager><!-- 2.sql操作的xml文件 --><sqlMap resource ="cn/entity/**.xml"><sqlMap resource="cn/entity/School.xml" /></sqlMapConfig>

实现类

public class UserDaoImp implements UserDao {private static SqlMapClient sqlMapClient = null;static{    try {        Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");        sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }}@Overridepublic User selectById(int id) {    // TODO Auto-generated method stub      try {    //不同操作对应不同的方法 都是通过SqlMapClient    //根据需求选择配置文件中的id使用    //嘿嘿,在这里,前边实体类xml文件中的namespace节点配置就有用了    //如果没有配置,在这里直接用id增删改查,就有可能因为Id重名而报错,所有namespace    //就是为了防止多个实体类xml配置文件中的id冲突;        return (User) sqlMapClient.queryForObject("selectById",id);    } catch (SQLException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    return null;}@Overridepublic boolean addUser(User user) {    // TODO Auto-generated method stub     try {         sqlMapClient.startTransaction();        sqlMapClient.insert("addUser", user);        sqlMapClient.commitTransaction();    } catch (SQLException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    return false;}}---------------为了提高代码复用性private static SqlMapClient sqlMapClient = null;  static{try {    Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();  }     }可以放在一个父类中,让子类继承使用

接下来就可以去使用了……