ibatis3.0 增删改查 模糊查询 和 多个参数查询 demo

本文分享了ibatis3.0的学习心得,并提供了基于该框架实现数据库操作的具体代码实例,包括增删改查、模糊查询及多参数查询等功能。
忙了三天,把ibatis3.0 进行了学习,下面是使用ibatis3.0 对数据库进行增删改查的操作,同时有模糊查询、按序列添加、多参数查询的操作,希望对大家有所帮助!
我马上就要用这个技术做项目了,还要加深掌握,愿与有志者一起加油!
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">


<configuration>
<properties resource="com/yhte/config/SqlMap.properties"/>
<typeAliases>
<typeAlias type="com.yhte.bean.Student" alias="student"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>




<mappers>
<mapper resource="com/yhte/bean/Student.xml"/>
</mappers>


</configuration>



Student.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="bin">

<select id="selectAllStudent" resultType="student">
select *
from student
</select>

<select id="selectStudentById" parameterType="int" resultType="student">
select *
from student
where sid=#{sid}
</select>


<select id="selectStudentBy23" parameterType="java.util.Map" resultType="student">
select *
from student
where sname=#{sname} and major=#{major}
</select>

<!--注意 #sid#,#sname#,#major#,#birth#,#score#) 对应Student类中的get方法如getSid -->
<insert id="insertStudent" parameterType="student">
insert into Student(sid, sname, major, birth, score)
values (#{sid},#{sname},#{major},#{birth},#{score})
</insert>

<delete id="deleteStudent" parameterType="int">
delete
from student
where sid=#{sid}
</delete>

<update id="updateStudent" parameterType="student">
update student
set
sid=#{sid},
sname=#{sname},
major=#{major},
birth=#{birth},
score=#{score}
where sid=#{sid}
</update>

<select id="selectStudentByName" parameterType="String" resultType="student" >
select sid,sname,major,birth,score
from student
where sname like #{sname}
</select>

<insert id="insertStudentBySequence" parameterType="student" >
<selectKey resultType="int" keyProperty="sid" order="BEFORE" >
select SEQ_student.nextVal
from dual
</selectKey>

insert into Student(sid, sname, birth, major, score)
values(#{sid}, #{sname}, #{birth}, #{major}, #{score})
</insert>

</mapper>


IbatisSessionFactory.java
package com.yhte.util;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class IbatisSessionFactory {
public SqlSessionFactory buildSqlSessionFactory() {
try {
String resource = "com/yhte/config/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
return new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
System.out.println("failed to build SqlSessionFactory");
e.printStackTrace();
return null;
}
}

public SqlSession getSession(){
return buildSqlSessionFactory().openSession();
}
}






IStudentDAOImpl.java

package com.yhte.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import com.yhte.bean.Student;
import com.yhte.util.IbatisSessionFactory;


public class IStudentDAOImpl extends IbatisSessionFactory implements IStudentDAO {


public void addStudent(Student student) {
SqlSession s = null;
try {
s = this.getSession();
s.insert("insertStudent", student);
s.commit();
System.out.println("添加成功");
} catch (Exception e) {
System.out.println("添加失败");
e.printStackTrace();
}finally{
if(s != null)s.close();
}

}


public void addStudentBySequence(Student student) {
SqlSession s = null;
try {
//1 获取sid
//2 插入sid
s = this.getSession();
s.insert("insertStudentBySequence", student);
s.commit();
System.out.println("按序列主键添加成功");
//System.out.println("sid="+student.getSid());
} catch (Exception e) {
System.out.println("按序列主键添加失败");
e.printStackTrace();
}

}

public void deleteStudentById(int id) {
SqlSession s = null;
try {
s = this.getSession();
s.delete("deleteStudent", id);
s.commit();
System.out.println("删除成功");
} catch (Exception e) {
System.out.println("删除失败");
e.printStackTrace();
}finally{
if(s!=null) s.close();
}

}

public List<Student> queryAllStudent() {


return this.getSession().selectList("bin.selectAllStudent");

}

public Student queryStudentById(int id) {
SqlSession s = null;
Student student = null;
try {
s = this.getSession();
student = (Student)s.selectOne("bin.selectStudentById", id);
s.commit();
System.out.println("按sid查询成功");
} catch (Exception e) {
System.out.println("按sid查询失败");
e.printStackTrace();
}
return student;

}

public List<Student> queryStudentByName(String name) {
SqlSession s = null;
List<Student> studentList = null;
try {
s = this.getSession();
studentList = s.selectList("selectStudentByName", name);
System.out.println("模糊查询成功" );
} catch (Exception e) {
System.out.println("模糊查询失败");
e.printStackTrace();
}finally{
s.close();
}

return studentList;
}

public void updateStudentById(Student student) {
SqlSession s = null;
try {
s = this.getSession();
s.update("updateStudent", student);
s.commit();
System.out.println("按sid更新成功");
//this.getSession().update("updateStudent", student);
//System.out.println(this.getSession().update("updateStudent", student));
} catch (Exception e) {
System.out.println("按sid更新失败");
e.printStackTrace();
}finally{
if(s != null) s.close();
}

}


public List<Student> queryStudentBy23(String sname, String major) {
Map map = new HashMap();
map.put("sname", sname);
map.put("major", major);
List<Student> studentList = null;
SqlSession s =null;
try {

s = this.getSession();
studentList = s.selectList("selectStudentBy23", map);
System.out.println("按23查询成功");
} catch (Exception e) {
System.out.println("按23查询失败");
e.printStackTrace();
}finally{
if(s != null) s.close();
}
return studentList;
}






}


curdemo.java

package com.yhte.test;

import java.sql.Date;

import com.yhte.bean.Student;
import com.yhte.dao.IStudentDAO;
import com.yhte.dao.IStudentDAOImpl;

public class curdemo {
/**
* @param args
*/
public static void main(String[] args) {
IStudentDAO dao = new IStudentDAOImpl();

// dao.deleteStudentById(104);

//view all
/*for(Student student:dao.queryAllStudent())
{
System.out.println(student);
}*/

//System.out.println(dao.queryStudentById(1));

//add
/*Student student = new Student();

student.setSid(104);
student.setSname("xuyissss");
student.setMajor("gameffffff");
student.setBirth(Date.valueOf("2008-02-03"));
student.setScore(9);

dao.addStudent(student);*/

//update
/* Student student = new Student();
student.setSid(103);
student.setSname("xiaohuqq");
student.setMajor("maoyi");
student.setBirth(Date.valueOf("2009-02-03"));
student.setScore(90);

dao.updateStudentById(student);*/

//模糊查询
/*for(Student student:dao.queryStudentByName("__ao%"))
{
System.out.println(student);
}*/


//addBySequence
/*Student student = new Student();


student.setSname("chaolin");
student.setMajor("zejing");
student.setBirth(Date.valueOf("2008-02-03"));
student.setScore(9);

dao.addStudentBySequence(student);*/

//按条件23查询
//模糊查询
for(Student student:dao.queryStudentBy23("chn","ze"))
{
System.out.println(student);
}

}

}
潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值