Ibatis基础配置使用

ibatis的使用

ibatis基本jar包

ibatis-xx .jar
mysql-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();
    }

}
@Override
public 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;
}
@Override
public 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 block
e.printStackTrace();
  }     
}
可以放在一个父类中,让子类继承使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值