`

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);
		}
	} 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics