spring,struts2,ibatis

3 篇文章 0 订阅
3 篇文章 0 订阅

 

 使用ibatis

首先导入一个ibatis jar包,然后在项目src下,添加了两个xml文件,一个是user.xml映射文件,另一个是 ibatis的基本配置文件sqlMapClient.xml

 

User.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL MAP 2.0//EN"

"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="User">

<resultMap id="result" class="com.user.entity.User">

   <result property="userId" column="user_id" columnIndex="1"/> 

<result property="name" column="user_name" columnIndex="2"/>

<result property="sex" column="user_sex" columnIndex="3"/>

<result property="birthday" column="user_birthday"  columnIndex="4"/>

<result property="passWord" column="user_passWord"  columnIndex="5"/>

<result property="email" column="user_email"  columnIndex="6"/>

<result property="state" column="user_state"  columnIndex="7"/>

</resultMap>

<insert id="INSERT_sql">

INSERT INTO                    t_users(user_name,user_sex,user_birthday,user_passWord,user_emal,user_state)

VALUES(#name#,#sex#,#birthday#,#passWord#,#email#,

#state#)

</insert> 

</sqlMap>

 

 

ibatis基本配置文件sqlMapClient.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" 

    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 

<sqlMapConfig>

<sqlMap resource="User.xml"/>

</sqlMapConfig>

 

 

spring配置文件applicationContext.xml 中注入sqlMapClien.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="dataSource"                                                      class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"   value="com.mysql.jdbc.Driver">

</property>

<property name="url" value="jdbc:mysql://localhost:3306/jd1115db">

</property>

<property name="username" value="root"></property>

<property name="password" value="1234"></property>

</bean>

<!-- Action -->

<bean id="registAction" class="com.user.action.RegistAction">

<property name="userService" ref="userService">

</property>

</bean>

<!-- service -->

<bean id="userService" class="com.user.service.UserService">

<property name="dao" ref="userDao"/>

</bean>

<!-- dao -->

 

<bean id="userDao" class="com.user.dao.UserDao">

<property name="sqlMapClient" ref="sqlMapClient"/>

</bean>

<!-- 将数据源dataSource 与ibatis 基本文件 sqlMapClient.xml注入到 spring提供的ibatis SqlMap 配置 -->

<bean id="sqlMapClient" 

class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation" value="sqlMapClient.xml"></property>

<property name="dataSource" ref="dataSource"></property>

  </bean>   

</beans>

 

 

Userdao

/*

 *继承SqlMapClientDaoSupport 

 */

public class UserDao extends SqlMapClientDaoSupport implements IUserDao{

/*

 * 插入数据方法

 * InsertUser() 方法

 * @param User user 参数说明

 * @return 无

 * @throws Exception

 * */

public void InsertUser(User user)throws Exception {

    //从配置文件中获取到sql语句,然后执行getSqlMapClientTemplate() getSqlMapClientTemplate().update("INSERT_sql",user);

}

 

再添上 Service  和 Action  、jsp 页面 

 

运行:注册界面:插入数据成功,跳转到登录界面,数据库里,得到插入的新数据

 

 

写代码时遇到的情况:

 

运行时,报错:

Document root element "sqlMapConfig", must match DOCTYPE root "null".

 

经过检查,发现是sqlMapConfig.xml配置文件写错,文件读不出数据

 

User.xml配置文件也写错,经过修改,程序运行正常 

总结:sqlMapConfig.xml,与User.xml 配置文件不同,这种情况容易被忽视。

使用ibatis后,代码量明显减少了,不仅不用再重复的写connection ,而且sql语句与UserDao分隔开来,真的方便管理。今天也解决了我昨天的问题,就是不用在从spring配置文件中调用sql语句,和使用时写那些String sql name” 和getset 方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值