ibatis的一个demo

核心配置文件:
<?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 数据源配置信息 <settings cacheModelsEnabled="true" enhancementEnabled="true" 
		lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" 
		maxTransactions="5" useStatementNamespaces="true"/> -->
	<!-- ibaits 配置不同数据库的数据接入方式 利用 JDBC -->
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1:3306/student" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="admin" />
			<!-- <property name="Pool.MaximumActiveConnections" value="10" /> <property 
				name="Pool.MaximumIdleConnections" value="5" /> <property name="Pool.MaximumCheckoutTime" 
				value="120000" /> <property name="Pool.TimeToWait" value="500" /> <property 
				name="Pool.PingEnabled" value="false" /> <property name="Pool.PingConnectionsOlderThan" 
				value="1" /> <property name="Pool.PingConnectionsNotUsedFor" value="1" /> -->
		</dataSource>
	</transactionManager>

	<sqlMap resource="com/ibatis/student.xml" />

</sqlMapConfig>
映射配置文件:
<?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>
	<typeAlias alias="student" type="com.ibatis.Student"/>
	<select id="selectAllStudent" resultClass="Student">
		select * from student
	</select>
</sqlMap>
model类:
package com.ibatis;

import java.util.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;
	}

}

接口:

package com.ibatis;

import java.util.List;

public interface IStudentDao {
		public void addStudent(Student student);
		public void deleteStudent(int id);
		public void updateStudent(Student student);
		public List<Student> queryAllStudent();
		public List<Student> querryStudentByName(String name);
		//只查一个属性
		public Student querryStudentById(int id);
}
继承接口类:

package com.ibatis;

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

import com.ibatis.sqlmap.client.SqlMapClient;

public class IStudentDAOImpl implements IStudentDao {
	
	//得去配置文件
	private static  SqlMapClient sqlMapClient=null;
	static {
		try {
			Reader reader=com.ibatis.common.resources.Resources.getResourceAsReader("com/ibatis/sqlMapConfig.xml");
			sqlMapClient=com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	@Override
	public void addStudent(Student student) {
		// TODO Auto-generated method stub

	}

	@Override
	public void deleteStudent(int id) {
		// TODO Auto-generated method stub

	}

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

	}

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

	@Override
	public List<Student> querryStudentByName(String name) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Student querryStudentById(int id) {
		return null;
	}
}
主函数:

package com.ibatis;

public class Test {
	public static void main(String[] args) {
			IStudentDao dao=new IStudentDAOImpl();
			for(Student student:dao.queryAllStudent()){
				System.out.println("this is id:"+student);
			}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动手写了一个IbatisDemo,反正啥东西,看着都是挺停简单的,Ibatis不就是一个ORM访问数据的东西嘛,不过在实际的动手的过程之中,还是需要到一些问题: 1)缺少这包,缺少那包的;还好用maven只要知道包的版本和2个ID,就不用自己到处找下载地址了。 2)使用的第三方框架太多,log4j输出太多,看起来费劲啊,另外一般异常日志也是一出就是一堆,不认真看,根本看不出问题在哪。在windows下用.net开发,早习惯了debugview去看(用好degbugview的过滤和高亮,可以让你第一眼就看到你想关注的信息);好几天一直在找一个类似的eclipse插件,不过还是无果而终。现在暂时自定义一个LogAppender去自己搞一个简单的过滤吧(这块有兴趣的可以去看org.ibatis.demo.core.log下代码)。 不知道为啥Spring这家伙为啥在java下有那么高的地位,感觉走到哪里都要用到它,不过无可否认java下Spring本身对于常见的框架都提供了很好的集成。很早以前.net和java程序员互相说自己好,对方不好的时候,看过过一句话:.net程序员里blog里都是大把的demo,java程序员blog经常是鸟文的摘抄或是翻译。感觉确实如此啊,java很少搜索到完整的demo,几乎都是断章取义的文字和代码。既然我是.net程序员现在再搞java,那么还延续.net程序员良好的习惯吧,上完整demo,也为一些需要的人,提供完整的参考。 Demo代码,没有啥太多的功能,就是对一张表的getAll(),然后输出结果的count值(.net下习惯了list.count,java是size,唉,老不习惯了,多写写java估计以后又习惯size,为啥人总是那么纠结呢?),数据库就不上了,大家要跑起来的话自己改改连库信息和实体代码以及xml的配置吧

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值