Mybatis/Ibatis例子(添加,修改,删除,获得结果集)

本文通过具体示例介绍了如何使用 MyBatis 框架进行数据的增删改查操作,包括 SQL 映射文件配置及 Java 代码实现。
[b]关键词: Mybatis,Ibatis,添加,修改,删除,获得结果集[/b]

[b]1.获得结果集[/b]

<select id="selectUserFromId" parameterType="int" resultType="com.zakisoft.ibt.UserVo">
select * from user where id = #{id}
</select>

<select id="selectAllUsers" resultType="com.zakisoft.ibt.UserVo">
select * from user
</select>


public List<?> selectUserFromId(int id) {
SqlSession session = sqlSessionFactory.openSession();
List<?> users = null;
try {
UserOp mapper = session.getMapper(UserOp.class);
users = mapper.selectUserFromId(id);
if (0 < users.size()) {
UserVo user = (UserVo) users.get(0);
System.out.println("Get User Name: " + user.getName());
}
} finally {
session.close();
}
return users;
}

public List<?> selectAllUsers() {
SqlSession session = sqlSessionFactory.openSession();
try {
UserOp mapper = session.getMapper(UserOp.class);
List<?> users = mapper.selectAllUsers();
if (0 < users.size()) {
UserVo user;
for (int i = 0; i < users.size(); i++) {
user = (UserVo) users.get(i);
System.out.println("User Id:" + user.getId() + " --- "
+ "User Name:" + user.getName());
}
}
} finally {
session.close();
}
return null;
}


[b]2.添加数据[/b]

<insert id="insertNewOneUser" keyProperty="id" parameterType="com.zakisoft.ibt.UserVo" useGeneratedKeys="true">
insert into user (name, password) values (#{name},#{password})
</insert>


public int insertNewOneUser(UserVo user) {
user = new UserVo();
user.setName("username: " + new Random().nextInt());
user.setPassword("passowrd: " + new Random().nextInt());

SqlSession session = sqlSessionFactory.openSession();
int count = 0;
try {
UserOp mapper = session.getMapper(UserOp.class);
count = mapper.insertNewOneUser(user);
System.out.println("count: " + count);
// 请注意一定需要提交。
session.commit();
} finally {
session.close();
}

return count;
}


[b]3.更新数据[/b]

<update id="updateUser" parameterType="com.zakisoft.ibt.UserVo">
update user set name = #{name}, password = #{password} where id = #{id}
</update>


public int updateUser(UserVo user){
SqlSession session = sqlSessionFactory.openSession();
int count = 0;
try {
UserOp mapper = session.getMapper(UserOp.class);
count = mapper.updateUser(user);
System.out.println("count: " + count);
// 请注意一定需要提交。
session.commit();
} finally {
session.close();
}
return count;
}


[b]4.删除数据[/b]

<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>


public int deleteUserById(int id){
SqlSession session = sqlSessionFactory.openSession();
int count = 0;
try {
UserOp mapper = session.getMapper(UserOp.class);
count = mapper.deleteUserById(id);
System.out.println("count: " + count);
// 请注意一定需要提交。
session.commit();
} finally {
session.close();
}
return count;
}



5.源码和例子下载
[url]http://www.zakisoft.com/?p=85[/url]
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
下面是 MyBatis 的 CRUD 示例: 1. 配置文件 ```xml <!-- configuration.xml --> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration> ``` 2. 实体类 ```java package com.example.entity; public class User { private int id; private String name; private int age; // 省略 getter 和 setter 方法 } ``` 3. Mapper 接口 ```java package com.example.mapper; import java.util.List; import com.example.entity.User; public interface UserMapper { User getUserById(int id); List<User> getAllUsers(); void addUser(User user); void updateUser(User user); void deleteUser(int id); } ``` 4. Mapper 文件 ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.mapper.UserMapper"> <resultMap id="userMap" type="User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> </resultMap> <select id="getUserById" resultMap="userMap"> SELECT * FROM user WHERE id = #{id} </select> <select id="getAllUsers" resultMap="userMap"> SELECT * FROM user </select> <insert id="addUser" parameterType="User"> INSERT INTO user (name, age) VALUES (#{name}, #{age}) </insert> <update id="updateUser" parameterType="User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="deleteUser"> DELETE FROM user WHERE id = #{id} </delete> </mapper> ``` 5. 使用 MyBatis ```java package com.example; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.example.entity.User; import com.example.mapper.UserMapper; public class MyBatisExample { public static void main(String[] args) throws Exception { String resource = "configuration.xml"; SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream(resource)); SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 查询单个用户 User user = userMapper.getUserById(1); System.out.println(user.getName()); // 查询所有用户 List<User> userList = userMapper.getAllUsers(); for (User u : userList) { System.out.println(u.getName()); } // 添加用户 User newUser = new User(); newUser.setName("Tom"); newUser.setAge(20); userMapper.addUser(newUser); // 修改用户 User updateUser = new User(); updateUser.setId(1); updateUser.setName("John"); updateUser.setAge(30); userMapper.updateUser(updateUser); // 删除用户 userMapper.deleteUser(1); sqlSession.commit(); sqlSession.close(); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值