ibatis-2.3.3学习

工程目录结构如下:

sql语句如下:

 

/*
SQLyog 企业版 - MySQL GUI v8.14 
MySQL - 5.1.33-community-log : Database - test
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test`;

/*Table structure for table `student` */

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `sid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sname` varchar(30) DEFAULT NULL,
  `major` varchar(30) DEFAULT NULL,
  `birth` date DEFAULT NULL,
  `score` float DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

/*Data for the table `student` */

insert  into `student`(`sid`,`sname`,`major`,`birth`,`score`) values (1,'mary','nv','2013-01-01',90),(2,'tom','nan','2012-01-01',91),(3,'aaa','nan','2011-01-01',66),(4,'mm','nv','2015-11-11',100),(5,'cate','nv','2020-11-11',100);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

 

1. Eclipse导入ibatis-2.3.3.720.jar和mysql-connector-java-5.1.28-bin.jar两个jar包。

2. src目录下建立SqlMap.properties文件,内容如下:

 

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=

3.  SqlMapConfig.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>

  <properties resource="SqlMap.properties"/>
  
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
      <!--<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
      <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/test"/>
      <property name="JDBC.Username" value="root"/>
      <property name="JDBC.Password" value=""/>
      -->
      <property name="JDBC.Driver" value="${driver}"/>
      <property name="JDBC.ConnectionURL" value="${url}"/>
      <property name="JDBC.Username" value="${username}"/>
      <property name="JDBC.Password" value="${password}"/>
    </dataSource>
  </transactionManager>

  <!-- List the SQL Map XML files. They can be loaded from the 
       classpath, as they are here (com.domain.data...) -->

  <sqlMap resource="Student.xml"/>

</sqlMapConfig>

4. Student.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>

	<select id="selectAllStudent" resultClass="mybatis.Student">
		select * from Student
	</select>

	<select id="selectStudentById" parameterClass="int" resultClass="mybatis.Student">
		select * from student where sid=#sid#
	</select>
	
	<insert id="insertStudent" parameterClass="mybatis.Student">
	    insert into Student(sid,sname,major,birth,score)
	    values
	    (#sid#,#sname#,#major#,#birth#,#score#)
	</insert>
	
	<delete id="deleteStudentById" parameterClass="mybatis.Student">
	    delete from student where sid=#sid#
	</delete>
	
	<update id="updateStudentById" parameterClass="mybatis.Student">
		update student set sname=#sname#,major=#major#,score=#score#,birth=#birth# where sid=#sid#
	</update>
	
	<select id="selectStudentByName" parameterClass="String" resultClass="mybatis.Student">
		select * from student where sname like '%$sname$%'
	</select>

</sqlMap>

5. IStudentDAO.java内容如下:

 

 

package mybatis;

import java.util.List;

public interface IStudentDAO
{
	public void addStudent(Student student);
	public void addStudentBySequence(Student student);
	public void deleteStudentById(int id);
	public void updateStudentById(Student student);
	public List<Student> queryAllStudent();
	public List<Student> queryStudentByName(String name);
	public Student queryStudentById(int id);
}

6. IStudentDAOImpl.java内容如下:

 

 

package mybatis;

import java.io.IOException;
import java.io.Reader;
import java.sql.Date;
import java.sql.SQLException;
import java.util.List;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class IStudentDAOImpl implements IStudentDAO
{
	private static SqlMapClient sqlMapClient = null;
	static
	{
		try
		{
			Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
			reader.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	}

	@Override
	public void addStudent(Student student)
	{
		try {
			sqlMapClient.insert("insertStudent", student);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Override
	public void addStudentBySequence(Student student) {
		// TODO Auto-generated method stub

	}

	@Override
	public void deleteStudentById(int id) {
		// TODO Auto-generated method stub
		try {
			sqlMapClient.delete("deleteStudentById", id);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Override
	public void updateStudentById(Student student)
	{
		// TODO Auto-generated method stub
		try {
			sqlMapClient.update("updateStudentById", student);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Student> queryAllStudent()
	{
		try {
			List<Student> studentList = sqlMapClient.queryForList("selectAllStudent");
			return studentList;
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Student> queryStudentByName(String name)
	{
		// TODO Auto-generated method stub
		List<Student> studentList = null;
		
		try {
			studentList = sqlMapClient.queryForList("selectStudentByName", name);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return studentList;
	}

	@Override
	public Student queryStudentById(int id)
	{
		Student student = null;
		try {
			student = (Student) sqlMapClient.queryForObject("selectStudentById", id);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return student;
	}

	public static void main(String[] args)
	{
		IStudentDAO dao = new IStudentDAOImpl();
		
		/*for(Student student:dao.queryAllStudent())
		{
			System.out.println(student);
		}*/
		
		//System.out.println(dao.queryStudentById(2));
		
		/*Student student = new Student();
		student.setSid(5);
		student.setSname("cate");
		student.setMajor("nv");
		student.setBirth(Date.valueOf("1999-11-11"));
		student.setScore(100);
		dao.addStudent(student);*/
		
		//dao.deleteStudentById(3);
		
		/*Student s = new Student();
		s.setSid(3);
		s.setSname("aaa");
		s.setMajor("nan");
		s.setScore(66);
		s.setBirth(Date.valueOf("2011-01-01"));
		dao.updateStudentById(s);*/
		
		System.out.print(dao.queryStudentByName("mary"));
	}

}

7. Student.java内容如下:

 

 

package mybatis;

import java.sql.Date;

public class Student 
{
	private int sid = 0;
	private String sname = null;
	private String major = null;
	private Date birth = null;
	private float score = 0;
	
	public int getSid() {
		return sid;
	}
	
	public void setSid(int sid) {
		this.sid = sid;
	}
	
	public String getSname() {
		return sname;
	}
	
	public void setSname(String sname) {
		this.sname = sname;
	}
	
	public String getMajor() {
		return major;
	}
	
	public void setMajor(String major) {
		this.major = major;
	}
	
	public Date getBirth() {
		return birth;
	}
	
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	
	public float getScore() {
		return score;
	}

	public void setScore(float score) {
		this.score = score;
	}

	@Override
	public String toString()
	{
		// TODO Auto-generated method stub
		String content = "sid="+sid+" sname="+sname+" major="+major+" birth="+birth+"score="+score;
		return content;
	}
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值