Spring+mybatis的一個簡單例子
一、eclipse新建java項目取名SpringTest
二、倒入sping,mybatis,jdbc(這里用postgresql)包到構建路徑
三、在psql中建庫、建表的腳本。
CREATE DATABASE mymotif WITH OWNER = mymotif ENCODING = 'UTF8' TABLESPACE = mymotif_ts LC_COLLATE = 'zh_CN.UTF-8' LC_CTYPE = 'zh_CN.UTF-8' CONNECTION LIMIT = -1; CREATE TABLE student ( sno character(7) NOT NULL, sname character(8) NOT NULL, sex character(2) NOT NULL, bdate date, dir character(16), CONSTRAINT student_pkey PRIMARY KEY (sno) ) WITH ( OIDS=FALSE ); ALTER TABLE student OWNER TO mymotif;
四、創建java類
student表對應的pojo對象
package cn.itcast.mybatis.domain;
import java.sql.Date;
public class Student {
private String SNO;
private String SNAME;
private String SEX;
private Date BDATE;
private String DIR;
public Student() {
}
public Student(String id, String name, String sex,Date date , String dir) {
this.SNO = id;
this.SNAME = name;
this.SEX = sex;
this.DIR = dir;
this.BDATE=date;
}
public String getDIR() {
return DIR;
}
public void setDIR(String dir) {
this.DIR = dir;
}
public String getSNO() {
return SNO;
}
public void setSNO(String sno) {
this.SNO = sno;
}
public String getSNAME() {
return SNAME;
}
public void setSNAME(String name) {
this.SNAME = name;
}
public String getSEX() {
return SEX;
}
public void setSEX(String sEX) {
SEX = sEX;
}
public Date getBDATE() {
return BDATE;
}
public void setBDATE(Date bDATE) {
BDATE = bDATE;
}
@Override
public String toString() {
return "Student [sno=" + SNO + ", name=" + SNAME + ", sex=" + SEX+ ", birthday=" + BDATE
+ ", direction=" + DIR + "]";
}
} 映射文件cn/itcast/mybatis/domain/Student.xml(和pojo對象在一個包內)
<?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="cn.itcast.mybatis.domain.Student">
<sql id="cols">
SNO,SNAME,SEX,BDATE,DIR
</sql>
<sql id="ucols">
SNO=#{SNO},SNAME=#{SNAME},SEX=#{SEX},BDATE=#{BDATE},DIR=#{DIR}
</sql>
<!-- 查詢所有記錄 -->
<select id="listAll" resultType="aliasesStudent">
select
<include refid="cols" />
from STUDENT
</select>
<!-- 按條件查詢 -->
<select id="find" parameterType="aliasesStudent" resultType="aliasesStudent">
select * from STUDENT
<where>
<if test="SNAME!=null">
and name like "%"#{SNAME}"%"
</if>
<if test="BDATE!=null">
and age=#{BDATE}
</if>
<if test="DIR!=null">
and age=#{DIR}
</if>
</where>
</select>
<!-- 查詢一個用戶 -->
<select id="get" parameterType="string" resultType="aliasesStudent">
select
<include refid="cols" />
from STUDENT where SNO=#{SNO}
</select>
<!-- 新增 -->
<insert id="create" parameterType="aliasesStudent">
insert into STUDENT (SNO,SNAME,SEX,BDATE,DIR)
values(#{SNO},#{SNAME},#{SEX},#{BDATE},#{DIR})
</insert>
<!-- 修改 -->
<update id="update" parameterType="aliasesStudent">
update STUDENT
<set>
<if test="SNAME!=null">
SNAME=#{SNAME},
</if>
<if test="BDATE!=null">
BDATE=#{BDATE},
</if>
<if test="DIR!=null">
DIR=#{DIR},
</if>
</set>
where SNO=#{SNO}
</update>
<!-- 刪除 -->
<delete id="delete" parameterType="string">
delete from STUDENT where SNO=#{SNO}
</delete>
</mapper> 對Student對象的訪問接口及實現類
package cn.itcast.mybatis.dao;
import java.util.List;
import cn.itcast.mybatis.domain.Student;
public interface IStudentDao {
public List<Student> list();
public Student get(String SNO);
public int insert(Student S);
public int update(Student S);
public int deleteById(String SNO);
}
package cn.itcast.mybatis.dao;
import java.util.List;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import cn.itcast.mybatis.domain.Student;
public class StudentDaoImpl extends SqlSessionDaoSupport implements IStudentDao {
@Override
public List<Student> list() {
// TODO 自動生成的方法存根
return this.getSqlSession().selectList("cn.itcast.mybatis.domain.Student.listAll");
}
@Override
public Student get(String SNO) {
// TODO 自動生成的方法存根
return (Student) this.getSqlSession().selectOne("cn.itcast.mybatis.domain.Student.get", SNO);
}
@Override
public int insert(Student S) {
// TODO 自動生成的方法存根
return this.getSqlSession().insert("cn.itcast.mybatis.domain.Student.create", S);
}
@Override
public int update(Student S) {
// TODO 自動生成的方法存根
return this.getSqlSession().update("cn.itcast.mybatis.domain.Student.update",S);
}
@Override
public int deleteById(String SNO) {
// TODO 自動生成的方法存根
return this.getSqlSession().delete("cn.itcast.mybatis.domain.Student.delete",SNO);
}
} 五、配置文件
resources/psqlStudentMapConfig.xml
<?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> <typeAliases> <typeAlias type="cn.itcast.mybatis.domain.Student" alias="aliasesStudent"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="org.postgresql.Driver"/> <property name="url" value="jdbc:postgresql:mymotif"/> <property name="username" value="mymotif"/> <property name="password" value="passwd"/> </dataSource> </environment> <!-- 產品 可用于多個配置的 --> <environment id="product"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="org.postgresql.Driver"/> <property name="url" value="jdbc:postgresql:mymotif"/> <property name="username" value="mymotif"/> <property name="password" value="passwd"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/itcast/mybatis/domain/Student.xml"/> </mappers> </configuration>
resources/psql-beans.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 數據源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver"></property>
<property name="url"
value="jdbc:postgresql:mymotif"></property>
<property name="username" value="mymotif"></property>
<property name="password" value="passwd"></property>
</bean>
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:resources/psqlStudentMapConfig.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 事務相關控制 -->
<bean name="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="StudentDao" class="cn.itcast.mybatis.dao.StudentDaoImpl">
<property name="sqlSessionFactory" ref="sessionFactory"></property>
</bean>
</beans> 六、測試類
package cn.itcast.mybatis.test;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.itcast.mybatis.dao.IStudentDao;
import cn.itcast.mybatis.domain.Student;
public class TestpStudentMybatis {
/**
* @param args
*/
private static ApplicationContext cxt;
public static void main(String[] args) {
// TODO 自動生成的方法存根
cxt = new ClassPathXmlApplicationContext("resources/psql-beans.xml");
IStudentDao sd = (IStudentDao) cxt.getBean("StudentDao");
List<Student> students = sd.list();
System.out.println("STUDENT表的記錄數為:" + students.size());
for (int i = 0; i < students.size(); i++)
System.out.println(students.get(i).toString());
}
} 運行結果:

數據庫改為mysql,只需改變配置文件如下
<?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> <typeAliases> <typeAlias type="cn.itcast.mybatis.domain.Student" alias="aliasesStudent"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8"/> <property name="username" value="mymotif"/> <property name="password" value="passwd"/> </dataSource> </environment> <!-- 產品 可用于多個配置的 --> <environment id="product"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8"/> <property name="username" value="mymotif"/> <property name="password" value="passwd"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/itcast/mybatis/domain/Student.xml"/> </mappers> </configuration>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!