Spring + Ibatis + MySql实例详解
2012-10-03 17:40
417 查看
1. 环境:
将以下jar包加入到工程,commons-logging-1.0.4.jar、ibatis-2.3.0.677.jar、mysql-connector-java-5.0.3-bin.jar、spring.jar。
2. 在MySql中创建数据库和相应的表:
[sql]
view plaincopyprint?
#############################################################################################
CREATE DATABASE MYDB;
use MYDB;
Drop TABLE IF EXISTS `MYDB`.`student`;
Create TABLE `MYDB`.`student` (
`name` varchar(40)
NOT NULL,
`psw` varchar(10) NOT
NULL,
`enabled` boolean
);
insert into student
values("lanp","lanpiao",true);
insert into student
values("ph","ph",true);
insert into student
values("wxh","wxh",true);
3. 创建实体Bean,Student.java
[java]
view plaincopyprint?
package com.lanp.beans;
import java.io.Serializable;
/**
* Student Bean
* @author LanP
* @since 2011-11-27 15:36
* @version V1.0
*/
public class Student
implements Serializable {
private static
final long serialVersionUID = -7163004163334815825L;
private String name;
private String psw;
private Boolean enabled;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
}
[html]
view plaincopyprint?
<?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>
<!-- 为Person类设置一个别名 -->
<typeAlias
alias="student"
type="com.lanp.beans.Student"/>
<!-- 配置表和实体Bean之间的映射关系 -->
<resultMap
id="studentMap"
class="com.lanp.beans.Student">
<result
property="name"
column="name"/>
<result
property="psw"
column="psw"/>
<result
property="enabled"
column="enabled"/>
</resultMap>
<insert
id="insertStudent"
parameterClass="student">
<![CDATA[
insert into student values(#name#,#psw#,#enabled#);
]]>
</insert>
<!-- 查看特定用户 -->
<select
id="queryStudentById"
parameterClass="string"
resultMap="studentMap">
<![CDATA[
SELECT * FROM STUDENT WHERE NAME=#name#
]]>
</select>
<!-- 查看所有的用户 -->
<select
id="queryAllStudents"
resultMap="studentMap">
<![CDATA[
SELECT * FROM STUDENT
]]>
</select>
</sqlMap>
[java]
view plaincopyprint?
package com.lanp.dao;
import com.lanp.beans.Student;
public interface StudentDao {
Student getStudent(String name);
}
6. 创建访问数据库的DAO接口实现类,StudentDaoImpl.java:
[java]
view plaincopyprint?
package com.lanp.dao;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.lanp.beans.Student;
public class StudentDaoImpl
extends SqlMapClientDaoSupport implements StudentDao {
@Override
public Student getStudent(String name) {
try{
return (Student)getSqlMapClientTemplate().queryForObject("queryStudentById", name);
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
}
7. Ibatis总配置文件,sqlMapConfig.xml:
[html]
view plaincopyprint?
<?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>
<!-- 配置Ibatis要使用的SqlMap文件信息 -->
<sqlMap
resource="com/lanp/beans/student.xml"/>
</sqlMapConfig>
8. spring配置文件,SQLMapClient.xml:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 相关数据源和事务管理的定义 -->
<bean
id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property
name="driverClassName"
value="com.mysql.jdbc.Driver"/>
<property
name="url"
value="jdbc:mysql://127.0.0.1:3306/MYDB"/>
<property
name="username"
value="root"/>
<property
name="password"
value="157891"/>
</bean>
<bean
id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property
name="configLocation">
<value>sqlMapConfig.xml</value>
</property>
<property
name="dataSource">
<ref
bean="dataSource"/>
</property>
</bean>
<bean
id="studentDao"
class="com.lanp.dao.StudentDaoImpl">
<property
name="sqlMapClient">
<ref
bean="sqlMapClient"/>
</property>
</bean>
</beans>
9. 测试类,TestStudent:
[java]
view plaincopyprint?
package com.lanp.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lanp.dao.StudentDao;
/**
* 测试Ibatis
* @author LanP
* @since 2011-11-27 15:36
* @version V1.0
*/
public class TestStudent {
public static
void main(String[] args) {
//1.初始化beans.xml文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("SQLMapClient.xml");
//2.获取MYDB数据库Student表中的内容
StudentDao studentDao = (StudentDao)ctx.getBean("studentDao");
if(null != studentDao) {
Student student = studentDao.getStudent("ph");
if(null != student) {
System.out.println("== 学生名字:" + student.getName() +
",学生密码:" + student.getPsw());
} else {
System.out.println("== 没有该学生信息!");
}
} else {
System.out.println("== StudentDao注入失败!");
}
}
}
原文地址:/article/2441801.html
将以下jar包加入到工程,commons-logging-1.0.4.jar、ibatis-2.3.0.677.jar、mysql-connector-java-5.0.3-bin.jar、spring.jar。
2. 在MySql中创建数据库和相应的表:
[sql]
view plaincopyprint?
#############################################################################################
CREATE DATABASE MYDB;
use MYDB;
Drop TABLE IF EXISTS `MYDB`.`student`;
Create TABLE `MYDB`.`student` (
`name` varchar(40)
NOT NULL,
`psw` varchar(10) NOT
NULL,
`enabled` boolean
);
insert into student
values("lanp","lanpiao",true);
insert into student
values("ph","ph",true);
insert into student
values("wxh","wxh",true);
############################################################################################# CREATE DATABASE MYDB; use MYDB; Drop TABLE IF EXISTS `MYDB`.`student`; Create TABLE `MYDB`.`student` ( `name` varchar(40) NOT NULL, `psw` varchar(10) NOT NULL, `enabled` boolean ); insert into student values("lanp","lanpiao",true); insert into student values("ph","ph",true); insert into student values("wxh","wxh",true);
3. 创建实体Bean,Student.java
[java]
view plaincopyprint?
package com.lanp.beans;
import java.io.Serializable;
/**
* Student Bean
* @author LanP
* @since 2011-11-27 15:36
* @version V1.0
*/
public class Student
implements Serializable {
private static
final long serialVersionUID = -7163004163334815825L;
private String name;
private String psw;
private Boolean enabled;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
}
package com.lanp.beans; import java.io.Serializable; /** * Student Bean * @author LanP * @since 2011-11-27 15:36 * @version V1.0 */ public class Student implements Serializable { private static final long serialVersionUID = -7163004163334815825L; private String name; private String psw; private Boolean enabled; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsw() { return psw; } public void setPsw(String psw) { this.psw = psw; } public Boolean getEnabled() { return enabled; } public void setEnabled(Boolean enabled) { this.enabled = enabled; } }4. 创建Student实体Bean与数据库映射的SQLMap文件,student.xml:
[html]
view plaincopyprint?
<?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>
<!-- 为Person类设置一个别名 -->
<typeAlias
alias="student"
type="com.lanp.beans.Student"/>
<!-- 配置表和实体Bean之间的映射关系 -->
<resultMap
id="studentMap"
class="com.lanp.beans.Student">
<result
property="name"
column="name"/>
<result
property="psw"
column="psw"/>
<result
property="enabled"
column="enabled"/>
</resultMap>
<insert
id="insertStudent"
parameterClass="student">
<![CDATA[
insert into student values(#name#,#psw#,#enabled#);
]]>
</insert>
<!-- 查看特定用户 -->
<select
id="queryStudentById"
parameterClass="string"
resultMap="studentMap">
<![CDATA[
SELECT * FROM STUDENT WHERE NAME=#name#
]]>
</select>
<!-- 查看所有的用户 -->
<select
id="queryAllStudents"
resultMap="studentMap">
<![CDATA[
SELECT * FROM STUDENT
]]>
</select>
</sqlMap>
<?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> <!-- 为Person类设置一个别名 --> <typeAlias alias="student" type="com.lanp.beans.Student"/> <!-- 配置表和实体Bean之间的映射关系 --> <resultMap id="studentMap" class="com.lanp.beans.Student"> <result property="name" column="name"/> <result property="psw" column="psw"/> <result property="enabled" column="enabled"/> </resultMap> <insert id="insertStudent" parameterClass="student"> <![CDATA[ insert into student values(#name#,#psw#,#enabled#); ]]> </insert> <!-- 查看特定用户 --> <select id="queryStudentById" parameterClass="string" resultMap="studentMap"> <![CDATA[ SELECT * FROM STUDENT WHERE NAME=#name# ]]> </select> <!-- 查看所有的用户 --> <select id="queryAllStudents" resultMap="studentMap"> <![CDATA[ SELECT * FROM STUDENT ]]> </select> </sqlMap>5. 创建访问数据库的DAO接口,StudentDao.java:
[java]
view plaincopyprint?
package com.lanp.dao;
import com.lanp.beans.Student;
public interface StudentDao {
Student getStudent(String name);
}
package com.lanp.dao; import com.lanp.beans.Student; public interface StudentDao { Student getStudent(String name); }
6. 创建访问数据库的DAO接口实现类,StudentDaoImpl.java:
[java]
view plaincopyprint?
package com.lanp.dao;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.lanp.beans.Student;
public class StudentDaoImpl
extends SqlMapClientDaoSupport implements StudentDao {
@Override
public Student getStudent(String name) {
try{
return (Student)getSqlMapClientTemplate().queryForObject("queryStudentById", name);
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
}
package com.lanp.dao; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import com.lanp.beans.Student; public class StudentDaoImpl extends SqlMapClientDaoSupport implements StudentDao { @Override public Student getStudent(String name) { try{ return (Student)getSqlMapClientTemplate().queryForObject("queryStudentById", name); } catch(Exception e) { e.printStackTrace(); } return null; } }
7. Ibatis总配置文件,sqlMapConfig.xml:
[html]
view plaincopyprint?
<?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>
<!-- 配置Ibatis要使用的SqlMap文件信息 -->
<sqlMap
resource="com/lanp/beans/student.xml"/>
</sqlMapConfig>
<?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> <!-- 配置Ibatis要使用的SqlMap文件信息 --> <sqlMap resource="com/lanp/beans/student.xml"/> </sqlMapConfig>
8. spring配置文件,SQLMapClient.xml:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 相关数据源和事务管理的定义 -->
<bean
id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property
name="driverClassName"
value="com.mysql.jdbc.Driver"/>
<property
name="url"
value="jdbc:mysql://127.0.0.1:3306/MYDB"/>
<property
name="username"
value="root"/>
<property
name="password"
value="157891"/>
</bean>
<bean
id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property
name="configLocation">
<value>sqlMapConfig.xml</value>
</property>
<property
name="dataSource">
<ref
bean="dataSource"/>
</property>
</bean>
<bean
id="studentDao"
class="com.lanp.dao.StudentDaoImpl">
<property
name="sqlMapClient">
<ref
bean="sqlMapClient"/>
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 相关数据源和事务管理的定义 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/MYDB"/> <property name="username" value="root"/> <property name="password" value="157891"/> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>sqlMapConfig.xml</value> </property> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="studentDao" class="com.lanp.dao.StudentDaoImpl"> <property name="sqlMapClient"> <ref bean="sqlMapClient"/> </property> </bean> </beans>
9. 测试类,TestStudent:
[java]
view plaincopyprint?
package com.lanp.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lanp.dao.StudentDao;
/**
* 测试Ibatis
* @author LanP
* @since 2011-11-27 15:36
* @version V1.0
*/
public class TestStudent {
public static
void main(String[] args) {
//1.初始化beans.xml文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("SQLMapClient.xml");
//2.获取MYDB数据库Student表中的内容
StudentDao studentDao = (StudentDao)ctx.getBean("studentDao");
if(null != studentDao) {
Student student = studentDao.getStudent("ph");
if(null != student) {
System.out.println("== 学生名字:" + student.getName() +
",学生密码:" + student.getPsw());
} else {
System.out.println("== 没有该学生信息!");
}
} else {
System.out.println("== StudentDao注入失败!");
}
}
}
原文地址:/article/2441801.html
相关文章推荐
- Spring + Ibatis + MySql+Java实例详解
- Spring + Ibatis + MySql实例详解
- Spring + Ibatis + MySql实例详解
- SpringMVC+Mysql实例详解(附demo)
- SpringMVC+Mysql实例详解
- spring mvc+ibatis+mysql的组合框架入门实例demo源码下载
- SpringMVC+Mysql实例详解 .
- Spring boot 使用mysql实例详解
- Ibatis + MySql+Java实例详解
- SpringMVC+Mysql实例详解
- WebWork + Spring + iBatis + MySql 实例(Jonson)
- Redis+Spring缓存实例讲解_Redis(附实例源码及详解)
- Spring架构详解之创建Bean实例并构建Bean的关系网
- Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(三)
- Spring基于事件驱动模型的订阅发布模式代码实例详解
- Spring MVC+Mybatis+Maven+Velocity+Mysql整合实例
- MyBatis详解 与配置MyBatis+Spring+MySql 1
- python基于mysql实现的简单队列以及跨进程锁实例详解
- Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)
- Linux 下C语言连接mysql实例详解