iBatis的增、删、查、改(执行通过)

1、首先要有表


2、目录结构


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="SqlMapConfig.properties"/>

<transactionManager type="JDBC">

<dataSource type="SIMPLE">

<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>

<sqlMap resource="sqlMap_student.xml"/>

</sqlMapConfig>

4、SqlMapConfig.properties文件:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/zlx

username=root

password=123456


5、StudentDto.java

public class StudentDto

{

private int id = 0;

private String name = "";

private String sex = "";

private int age = 0;

private String address = "";

public int getId()

{

return id;

}

public void setId(int id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public String getSex()

{

return sex;

}

public void setSex(String sex)

{

this.sex = sex;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

this.age = age;

}

public String getAddress()

{

return address;

}

public void setAddress(String address)

{

this.address = address;

}

}

6、StudentDao.java

public interface StudentDao

{

//添加student表的数据

public void addStudent(SqlMapClient sqlMap,StudentDto studentdto);

//删除student表的数据

public void delStudent(SqlMapClient sqlMap);

//删除student表的指定ID数据

public void delStudentByID(SqlMapClient sqlMap,StudentDto studentdto);

//更新student表的数据

public void updateStudent(SqlMapClient sqlMap,StudentDto studentdto);

//查询student表的所有数据

public ArrayList selectStudent(SqlMapClient sqlMap);

//查询student表的指定ID数据

public StudentDto selectStudentByID(SqlMapClient sqlMap,StudentDto studentdto);

}

7、StudentImpl.java

public class StudentImpl implements StudentDao

{

//添加student表的数据

public void addStudent(SqlMapClient sqlMap,StudentDto studentdto)

{

try {

sqlMap.insert("insert_student",studentdto);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


//删除student表的数据

public void delStudent(SqlMapClient sqlMap)

{

try {

sqlMap.delete("delete_all_student",null);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


//删除student表的指定ID数据

public void delStudentByID(SqlMapClient sqlMap, StudentDto studentdto)

{

try {

sqlMap.delete("deleteByID_student",studentdto);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


//更新student表的数据

public void updateStudent(SqlMapClient sqlMap, StudentDto studentdto)

{

try {

sqlMap.update("updateStudent_test",studentdto);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


//查询student表的所有数据

public ArrayList selectStudent(SqlMapClient sqlMap)

{

//保存查询结果

ArrayList rsList = new ArrayList();

try {

rsList = (ArrayList)sqlMap.queryForList("select_all_student","");

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return rsList;

}


//查询student表的指定ID数据

public StudentDto selectStudentByID(SqlMapClient sqlMap, StudentDto studentdto)

{

StudentDto info = new StudentDto();

try {

info = (StudentDto)sqlMap.queryForObject("selectByID_student",studentdto);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return info;

}

}


8、MainTest.java 测试类

public class MainTest

{

public StudentImpl impl = new StudentImpl();

public StudentDto info = new StudentDto();

public static SqlMapClient sqlmapclient = null;

static{

try{

Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");

sqlmapclient = SqlMapClientBuilder.buildSqlMapClient(reader);

reader.close();

}catch(IOException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

MainTest stu = new MainTest();

System.out.println("---------start--------");

//以下为各种方法测试

//stu.addStudent_test();

//stu.delStudentByID_test();

//stu.selectStudentByID_test();

//stu.selectStudent_test();

stu.updateStudent_test();

System.out.println("---------end----------");

}

//添加student表的数据

public void addStudent_test()

{

info.setId(5);

info.setName("zhangxiang");

info.setSex("男");

info.setAge(24);

info.setAddress("临沂");

impl.addStudent(sqlmapclient, info);

}

//删除student表的指定ID数据

public void delStudentByID_test()

{

info.setId(5);

impl.delStudentByID(sqlmapclient, info);

}

//更新student表的数据

public void updateStudent_test()

{

info.setId(6);

info.setName("jingnan");

info.setSex("女");

info.setAge(20);

info.setAddress("上海");

impl.updateStudent(sqlmapclient, info);

}

//查询student表的所有数据

public void selectStudent_test()

{

StudentDto stu_dto = new StudentDto();

ArrayList resultList = impl.selectStudent(sqlmapclient);

for(int i = 0; i < resultList.size(); i++)

{

stu_dto = (StudentDto)resultList.get(i);

show(stu_dto);

}

}

//查询student表的指定ID数据

public void selectStudentByID_test()

{

StudentDto stu_dto = new StudentDto();

info.setId(1);

stu_dto = impl.selectStudentByID(sqlmapclient, info);

if(stu_dto != null)

{

show(stu_dto);

}

else

{

System.out.println("no data!!!!");

}

}

//打印查询结果

public void show(StudentDto stu_dto)

{

System.out.println("学生:" + stu_dto.getId() + ";");

System.out.println("学生姓名:" + stu_dto.getName() + ";");

System.out.println("学生性别:" + stu_dto.getSex() + ";");

System.out.println("学生年龄:" + stu_dto.getAge() + ";");

System.out.println("学生地址:" + stu_dto.getAddress());

System.out.println();

}

}

9、sqlMap_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 namespace="Test">

<statement id="insert_student"

parameterClass="dto.StudentDto">

insert into student(id,name,age,sex,address) values(#id#,#name#,#age#,#sex#,#address#)

</statement>


<statement id="delete_all_student">

delete from student

</statement>


<statement id="deleteByID_student"

parameterClass="dto.StudentDto">

delete from student where id=#id#

</statement>


<statement id="updateStudent_test"

parameterClass="dto.StudentDto">

update student set name=#name#,sex=#sex#,age=#age#,address=#address# where id=#id#

</statement>


<statement id="select_all_student" resultClass="dto.StudentDto">

select * from student order by id

</statement>


<statement id="selectByID_student"

parameterClass="dto.StudentDto"

resultClass="dto.StudentDto">

select * from student where id=#id# order by id

</statement>

</sqlMap>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的经典案例包括以下几种: 1. 基于JDBC的 使用JDBC连接数据库,执行SQL语句进行操作。示例代码如下: ```java import java.sql.*; public class JdbcDemo { public static void main(String[] args) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 1. 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 2. 获取连接 String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "123456"; conn = DriverManager.getConnection(url, username, password); // 3. 执行SQL语句 // 插入数据 String sql = "insert into user(name, age) values(?, ?)"; ps = conn.prepareStatement(sql); ps.setString(1, "张三"); ps.setInt(2, 20); ps.executeUpdate(); // 询数据 sql = "select * from user"; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getInt("age")); } // 更新数据 sql = "update user set age=? where name=?"; ps = conn.prepareStatement(sql); ps.setInt(1, 25); ps.setString(2, "张三"); ps.executeUpdate(); // 除数据 sql = "delete from user where name=?"; ps = conn.prepareStatement(sql); ps.setString(1, "张三"); ps.executeUpdate(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 4. 释放资源 try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 2. 基于MyBatis的 使用MyBatis ORM框架进行数据库操作。示例代码如下: ```java import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisDemo { public static void main(String[] args) { // 1. 加载配置文件 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(MybatisDemo.class.getClassLoader().getResourceAsStream("mybatis-config.xml")); // 2. 获取SqlSession SqlSession session = factory.openSession(); try { // 3. 执行SQL语句 // 插入数据 User user = new User(); user.setName("张三"); user.setAge(20); session.insert("UserMapper.insert", user); // 询数据 List<User> users = session.selectList("UserMapper.selectAll"); for (User u : users) { System.out.println(u.getId() + "\t" + u.getName() + "\t" + u.getAge()); } // 更新数据 User updateUser = new User(); updateUser.setName("张三"); updateUser.setAge(25); session.update("UserMapper.update", updateUser); // 除数据 session.delete("UserMapper.delete", "张三"); // 提交事务 session.commit(); } catch (Exception e) { // 回滚事务 session.rollback(); e.printStackTrace(); } finally { // 4. 释放资源 session.close(); } } } ``` 3. 基于Spring JDBC的 使用Spring JDBC模块进行数据库操作。示例代码如下: ```java import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; public class SpringJdbcDemo { public static void main(String[] args) { // 1. 创建数据源 DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("root"); dataSource.setPassword("123456"); // 2. 创建JdbcTemplate对象 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); try { // 3. 执行SQL语句 // 插入数据 String sql = "insert into user(name, age) values(?, ?)"; jdbcTemplate.update(sql, "张三", 20); // 询数据 sql = "select * from user"; List<User> users = jdbcTemplate.query(sql, new UserRowMapper()); for (User u : users) { System.out.println(u.getId() + "\t" + u.getName() + "\t" + u.getAge()); } // 更新数据 sql = "update user set age=? where name=?"; jdbcTemplate.update(sql, 25, "张三"); // 除数据 sql = "delete from user where name=?"; jdbcTemplate.update(sql, "张三"); } catch (Exception e) { e.printStackTrace(); } } private static class UserRowMapper implements RowMapper<User> { @Override public User mapRow(ResultSet rs, int rowNum) throws SQLException { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); return user; } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值