Maven+ibatis_实现对数据库增删改查

maven+ibatis实现增删改查,模糊查询等

新建一个maven项目略
1. Pox.xml配置 (前提是你的jar包服务器有这些jar包)
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>apl.com.test</groupId>
<artifactId>ssi2</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>ssi2 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-core</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>oracle.jdbc.driver</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.1.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>3.0-beta-9</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.bundles</groupId>
<artifactId>org.apache.servicemix.bundles.ibatis-sqlmap</artifactId>
<version>2.3.4.726_3</version>
</dependency>
</dependencies>
<build>
<finalName>ssi2</finalName>
</build>
</project>

2. sqlmap-config.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>
<settings useStatementNamespaces="true"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.1.196:1521:ORCL"/>
<property name="JDBC.Username" value="smsserver"/>
<property name="JDBC.Password" value="zjapl"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/zjapl/daomain/User.xml" />
</sqlMapConfig>

3.实体映射类的配置(ibatis操作数据库表的文件)
<?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 class="com.zjapl.Student" id="StudentResult">
<result property="id" column="ID" />
<result property="text" column="TEXT"/>
<result property="reeee" column="REEEE"/>
<result property="sysname" column="SYSNAME"/>
<result property="sysnumber" column="SYSNUMBER"/>
</resultMap>

<typeAlias alias="Student" type="com.zjapl.Student"></typeAlias>
<select id="SelectAllStudent" resultMap="StudentResult">
SELECT * FROM TEST_TTT
</select>

<select id="queryStudentById" parameterClass="int" resultMap="StudentResult">
SELECT * FROM TEST_TTT where id = #id#
</select>

<insert id="addStudent" parameterClass="Student">
insert into TEST_TTT(id,text,reeee,sysname,sysnumber) values(#id#,#text#,#reeee#,#sysname#,#sysnumber#)
</insert>

<delete id="deleteStudent" parameterClass="int">
delete TEST_TTT where id = #id#
</delete>

<update id="updateStudentById" parameterClass="Student">
update TEST_TTT set text=#text#,
reeee=#reeee#,
sysname=#sysname#,
sysnumber=#sysnumber#
where id=#id#
</update>

<select id="queryStudentByName" parameterClass="String" resultClass="Student">
select * from TEST_TTT where sysname like '%$sysname$%'
</select>

<insert id="addStudentBySequence" parameterClass="Student" >
<selectKey resultClass="int" keyProperty="id">
select test_tttpkseq.nextVal from dual
</selectKey>
insert into TEST_TTT(id,text,reeee,sysname,sysnumber) values
(#id#,#text#,#reeee#,#sysname#,#sysnumber#)
</insert>
</sqlMap>


4. 配置实体类(类中的属性与表中的字段对应)
public class Student {

private int id;
/**测试内容*/
private String text;
/**备注信息*/
private String reeee;
/**测试发送内容的单位名称*/
private String sysname;
/**测试发送内容单位的编号*/
private String sysnumber;
public Student() {
}

public Student(int id, String text, String reeee, String sysname,
String sysnumber) {
super();
this.id = id;
this.text = text;
this.reeee = reeee;
this.sysname = sysname;
this.sysnumber = sysnumber;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getReeee() {
return reeee;
}
public void setReeee(String reeee) {
this.reeee = reeee;
}
public String getSysname() {
return sysname;
}
public void setSysname(String sysname) {
this.sysname = sysname;
}
public String getSysnumber() {
return sysnumber;
}
public void setSysnumber(String sysnumber) {
this.sysnumber = sysnumber;
}

@Override
public String toString() {
String content ="tid="+id+"\text="+text+"\reeee="+reeee+"\name="+sysname+"\number="+sysnumber;
return content;
}
}


5.写一个接口(用于保存对实体类的一些操作如增删改查等…)
import java.util.List;

public interface IStudentDao {

public void addStudent(Student student);
public void addStudentBySequence(Student studetn);
public void deleteStudent(int id);
public void updateStudentById(Student student);
public List<Student> queryAllStudetn();
public List<Student> queryStudentByName(String sysname);
public Student queryStudentById(int id);
}


6.对接口中方法的实现(测试并把结果输出到控制台):
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

import org.apache.ibatis.io.Resources;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class StudentDaoImpl implements IStudentDao{

//读取实体配置文件
private static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader = Resources.getResourceAsReader("com/zjapl/sqlmap-config.xml");
//sqlMapClient = sqlMapClient.buildSqlMapClient(reader);
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public void addStudent(Student student) {

try {
sqlMapClient.insert("User.addStudent", student);
} catch (SQLException e) {
e.printStackTrace();
}
}

public void addStudentBySequence(Student student) {
try {
sqlMapClient.insert("User.addStudentBySequence", student);
System.out.println("id="+student.getId());
} catch (SQLException e) {
e.printStackTrace();
}
}

public void deleteStudent(int id) {
try {
System.out.println(sqlMapClient.delete("User.deleteStudent", id));
} catch (SQLException e) {
e.printStackTrace();
}

}

public void updateStudentById(Student student) {
try {
System.out.println(sqlMapClient.update("User.updateStudentById", student));
} catch (SQLException e) {
e.printStackTrace();
}
}

public List<Student> queryAllStudetn() {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("User.SelectAllStudent");
} catch (SQLException e) {
e.printStackTrace();
}
return studentList;
}

public List<Student> queryStudentByName(String sysname) {
List<Student> studentList = null ;
try {
studentList = sqlMapClient.queryForList("User.queryStudentByName", sysname);
} catch (SQLException e) {
e.printStackTrace();
}
return studentList;
}

public Student queryStudentById(int id) {
Student student = null;
try {
student = (Student) sqlMapClient.queryForObject("User.queryStudentById",id);
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}

/**
* @param args
*/
public static void main(String[] args) {
StudentDaoImpl dao = new StudentDaoImpl();


//3.添加一条记录
// Student student = new Student();
// student.setId(9);
// student.setText("添加内容测试ibatis_StudetnDaoImpl");
// student.setReeee("就是简单备注");
// student.setSysname("张三系统");
// student.setSysnumber("3232323");
// dao.addStudent(student);
//2.查询一个用户
// System.out.println(dao.queryStudentById(4));
//1.查询所有用户
for(Student student:dao.queryAllStudetn()) {
System.out.println(student);
}

/* try {
Class.forName("com.zjapl.Student").newInstance();
} catch (Exception e) {
e.printStackTrace();
}*/

//4删除一个用户
// dao.deleteStudent(9);

//5.更新一位用户
// Student student = new Student();
// student.setId(9);
// student.setText("更新测试ibatis_StudetnDaoImpl");
// student.setReeee("更新");
// student.setSysname("李四系统");
// student.setSysnumber("789432");
// dao.updateStudentById(student);

//6.模糊查询按名称
// for (Student studentList:dao.queryStudentByName("杭")) {
// System.out.println(studentList);
// }

//7.id序列后,插入一条记录
// Student student = new Student();
// student.setId(9); //序列化后这里的设置没有作用。
// student.setText("oracle序列添加测试ibatis_StudetnDaoImpl");
// student.setReeee("seq测试");
// student.setSysname("sequense系统");
// student.setSysnumber("34654543");
// dao.addStudentBySequence(student);
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值