`

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

分享到:
评论

相关推荐

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    Ibatis与MySQL的结合,使得开发者能够方便地执行SQL查询,实现数据的增删改查操作。 整合这五个技术的关键在于配置。在Maven的pom.xml文件中,需要定义所有依赖项,确保所有组件的版本兼容。在Spring的配置文件中,...

    Java - SpringMVC+iBatis maven工程项目增删改查实例入门+源码

    本教程将带你逐步了解如何使用这两个工具进行数据库操作的增删改查(CRUD)功能实现。这里,我们有一个名为"ibatisDemo"的压缩包,其中包含了基于Maven构建的SpringMVC+iBatis项目实例和源代码。 **SpringMVC框架**...

    java struts2 + ibatis +oracle 整合简单登陆及增删改查实例

    这个实例将向我们展示如何使用这些技术实现一个基础的登录功能以及增删改查操作。下面,我们将深入探讨每个组件及其在整合过程中的作用。 1. **Struts2**: Struts2是一个基于MVC(Model-View-Controller)设计...

    一个S2S+ibatis一个增删改查的例子(由原先SSH2改编)

    标题中的“S2S+ibatis一个增删改查的例子”指的是使用Struts2和iBatis框架实现的典型数据库操作应用。Struts2是一个基于MVC设计模式的Java Web框架,而iBatis则是一个SQL映射框架,用于简化数据库访问。这个例子将...

    ibatis的增删改查

    在这个"ibatis的增删改查"主题中,我们将深入探讨如何在不依赖MVC框架的情况下,利用Ibatis进行数据操作。 1. **Ibatis安装与配置** 首先,你需要将Ibatis的jar包添加到项目的类路径中,或者通过Maven或Gradle等...

    ibatis对数据库进行增删改查操作的小例子

    -- 更多的增删改查操作 --&gt; ``` 同时,需要创建对应的Mapper接口: ```java public interface UserMapper { void insertUser(User user); // 其他方法 } ``` 在Service层,我们可以使用SqlSession来执行SQL...

    Ibatis的简单例子(增删改查,联合查询等)

    在这个"Ibatis的简单例子"中,我们将探讨如何使用Ibatis进行数据库的增删改查(CRUD)操作以及联合查询。 1. **安装与配置**: 在开始之前,你需要在项目中添加Ibatis的依赖,通常是通过Maven或Gradle。在Maven的`...

    四个struts1(2)+spring+ibatis+jquery整合实例

    3. **Ibatis**:Ibatis是一个SQL映射框架,它允许开发者编写动态SQL并与数据库进行交互。与传统的JDBC相比,Ibatis提供了更简单的方式来处理SQL查询和结果集映射,从而减少了代码量并提高了可维护性。 4. **jQuery*...

    SSM实现数据库增删改查操作

    通过以上步骤,我们就完成了SSM框架下的数据库增删改查操作。当用户向 `/users/{id}` 发起GET请求时,会调用`getUser`方法获取指定ID的用户;POST请求用于创建新用户;PUT请求更新指定ID的用户信息;DELETE请求删除...

    struts2+ibatis+mysql 项目

    在这个项目中,iBatis用于处理与MySQL数据库的交互,包括数据的增删改查和事务管理。 MySQL是流行的开源关系型数据库管理系统,以其高效、稳定和易于使用著称。在本项目中,`sql`文件很可能是数据库的初始化脚本,...

    ibatis增删改查

    **Ibatis 增删改查详解** Ibatis 是一款优秀的、开源的 ...通过以上步骤,你可以快速掌握 Ibatis 的基本用法,实现数据库的增删改查操作。对于初学者而言,理解并实践这些知识点将为你的 Java 开发之路打下坚实基础。

    ibatis增删改查技术

    在本教程中,我们将深入探讨如何使用 Ibatis 连接 SQL Server 2005 数据库,并执行基本的增删改查(CRUD)操作。 首先,我们需要在项目中引入 Ibatis 的依赖。通常,这可以通过 Maven 或者 Gradle 进行管理。在 ...

    iBatis 简单增删改查(CRUD)操作

    iBatis 是一款轻量级的Java持久层框架,它主要负责数据库的增删改查(CRUD)操作。在本教程中,我们将探讨如何利用iBatis进行基本的数据库操作,包括配置、映射文件、SQL语句的编写以及Java代码的实现。 **一、...

    springMvcRestIbatisDemo.zip 实例程序 实现简单登录 及增删改查

    5. **增删改查(CRUD)**:CRUD是数据库操作的基础,涉及创建新记录、读取现有记录、更新记录和删除记录。在本项目中,每个操作都对应一个Controller方法,如UserController可能包含`createUser()`, `readUser()`, `...

    struts2+spring+mybatis+easyui的实现

    通过AJAX技术,EasyUI可以与后台进行异步通信,动态加载数据,实现数据的增删改查等功能。 在集成这四个组件时,首先我们需要在pom.xml文件中添加相应的依赖,然后创建项目的目录结构,包括src/main/resources下的...

    Spring+ibatis+SpringMVC简单集体demo案例

    Ibatis通过XML配置文件或注解来定义SQL语句,与Spring集成后,可以在Spring管理的Bean中直接调用这些SQL,实现数据的增删改查。 **集成过程** 1. **配置环境**:创建一个Maven项目,添加Spring、SpringMVC、Ibatis...

    Struts2+Spring+Ibatis整合

    6. **DAO层**:使用iBatis提供的SqlSession接口,通过Mapper接口执行SQL语句,实现数据的增删改查。 7. **视图渲染**:Action类执行完业务逻辑后,通过结果映射返回视图。Struts2会根据结果名称找到相应的JSP或...

    简单、上手快的ibatis增删改查例子

    它摒弃了传统的Hibernate等ORM(对象关系映射)框架的复杂性,以一种简单直观的方式实现了数据的增删改查。Ibatis的特性包括易于学习、配置简洁以及SQL定制性强,这些特点使其成为初学者和项目中的理想选择。 **...

    ibatis学习质料有详细的增删改查的实例

    本学习资料针对 Ibatis 的基本操作,包括增、删、改、查四大核心功能提供了详尽的实例,非常适合初学者入门和提高。 1. **Ibatis 概述** Ibatis 是 MyBatis 的前身,它是一个基于 Java 的数据访问框架,用于简化 ...

    基于K8S + apisix/istio 实现云原生微服务.springrain自带代码生成器,能够生成对表的增删改查的逻辑代码

    基于K8S + apisix/istio 实现云原生微服务.springrain自带代码生成器,能够生成对表的增删改查的逻辑代码.springrain是标准Maven项目,只依赖springboot,没有hibernate,struts,ibatis,数据库调优可以使用druid输出慢...

Global site tag (gtag.js) - Google Analytics