当前位置: 首页 > news >正文

自然堂网站建设策划书电脑和手机同步编辑wordpress

自然堂网站建设策划书,电脑和手机同步编辑wordpress,榆林公司做网站,人才网站的seo怎么做Mybatis注解开发与事务注解开发事务注解开发 MyBatis 注解开发是一种通过 Java 注解来配置 SQL 映射关系的方式,相比传统的 XML 配置,它可以将 SQL 语句直接写在接口方法上,使代码更加简洁。 常用的注解: Insert:添加、Update:修…

Mybatis注解开发与事务

  • 注解开发
  • 事务

注解开发

MyBatis 注解开发是一种通过 Java 注解来配置 SQL 映射关系的方式,相比传统的 XML 配置,它可以将 SQL 语句直接写在接口方法上,使代码更加简洁。

常用的注解:
@Insert:添加、@Update:修改、@Delete:删除、@Select:查询、@Result:实现结果集封装
@Results:可以和@Result一起使用,封装多个结果集
@One:实现一对一和多对一的结果集封装
@Many:实现一对多结果级封装

import org.apache.ibatis.annotations.*;
import java.util.List;public interface UserMapper {// 新增@Insert("INSERT INTO user(username, age) VALUES(#{username}, #{age})")int insert(User user);// 删除@Delete("DELETE FROM user WHERE id = #{id}")int deleteById(Integer id);// 更新@Update("UPDATE user SET username = #{username}, age = #{age} WHERE id = #{id}")int update(User user);// 查询单个@Select("SELECT id, username, age FROM user WHERE id = #{id}")User selectById(Integer id);// 查询所有@Select("SELECT id, username, age FROM user")List<User> selectAll();
}

结果映射 @Result 注解

public interface UserDao {//查询所有@Select("select * from user")@Results(id="userMap",value = {@Result(property = "id",column = "id"),@Result(property = "username",column = "username"),@Result(property = "birthday",column = "birthday"),@Result(property = "sex",column = "sex"),@Result(property = "address",column = "address")})public List<User> findAll();//通过ID查询@Select("select * from user where id = #{id}")@ResultMap(value = "userMap")public User findById(int id);
}

运行代码结果如下:

在这里插入图片描述
在这里插入图片描述

事务

事务(Transaction)是数据库操作的基本单元,用于保证一组数据库操作的原子性、一致性、隔离性和持久性(ACID 特性):

  • 原子性(Atomicity):事务中的操作要么全部成功,要么全部失败(失败则回滚)。
  • 一致性(Consistency):事务执行前后,数据库的状态始终保持合法符合业务规则。
  • 隔离性(Isolation):多个并发事务之间相互隔离,互不干扰,避免脏读、不可重复读、幻读。
  • 持久性(Durability):事务提交后,修改会永久保存到数据库,即使系统崩溃也不会丢失。

一个完整的事务通常包含以下阶段:

  1. 开始事务(Begin Transaction)
    标记事务的起点,此后的所有操作都将被纳入该事务的范围。在 MySQL 中,默认自动开启事务,也可通过BEGIN或START TRANSACTION显式开启。
  2. 执行 SQL 操作
    执行一系列增删改查语句,这些操作会暂时记录在事务日志中,未真正写入数据库(或仅写入内存缓冲区)。
  3. 提交事务(Commit)
    若所有操作无异常,通过COMMIT确认事务,将日志中的修改永久写入数据库,事务结束。
  4. 回滚事务(Rollback)
    若执行过程中发生错误(如异常、约束冲突),通过ROLLBACK撤销所有操作,数据库恢复到事务开始前的状态,事务结束。

配置事务示例,使用本地事务策略:

			<!--配置事务的类型,使用本地事务策略--><transactionManager type="JDBC"></transactionManager>

设置自动提交事务,可以通过openSession的方法进行设置,openSession(true) 自动提交事务
MyBatis框架中的事务默认是手动提交的,也就是每次编写程序都需要调用commit()方法提交事务

代码示例

import com.qcby.dao.UserDao;
import com.qcby.entity.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Date;
import java.util.List;public class UserTest {private InputStream in = null;private SqlSession session = null;private UserDao userDao = null;@Before  //前置通知, 在方法执行之前执行public void init() throws IOException {//加载主配置文件,目的是为了构建SqlSessionFactory对象in = Resources.getResourceAsStream("SqlMapConfig.xml");//创建SqlSessionFactory对象SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//通过SqlSessionFactory工厂对象创建SqlSesssion对象session = factory.openSession();//通过Session创建UserDao接口代理对象userDao = session.getMapper(UserDao.class);}@After  //@After: 后置通知, 在方法执行之后执行 。public void destory() throws IOException {//释放资源session.close();in.close();}@Testpublic void add(){User user = new User();user.setUsername("小王");user.setSex("男");user.setAddress("北京");user.setBirthday(new Date());int count = userDao.add(user);try{userDao.add(user);session.commit();}catch(Exception e){e.printStackTrace();session.rollback();}System.out.println(count);}
http://www.dtcms.com/a/402862.html

相关文章:

  • 请人建设网站需要注意什么wordpress 管理员权限设置
  • 男女做暖网站国外图片网站源码
  • 工程项目网站wordpress模板製作
  • 做网站需要跟客户了解什么软件家在深圳 歌曲
  • 关于网站建设的调研报告企业seo解决方案
  • 网站开发网络公司兼职百度怎么免费推广自己的产品
  • 网站策划书案例展示游戏网站规划方案
  • 如何在年报网站上做遗失公告樱花16q808a
  • 郴州网站建设解决方案网站 免费 托管运营
  • 网站关键字没有排名素材网站 国外
  • 游戏自助充值网站怎么做网站开发目标开题报告
  • 宁波网站怎么建设wordpress访问过的页码不变色
  • 三门峡做网站的公司建设网站南沙
  • 网站怎样做301购物网站建站系统
  • 如何自建网站?贵州最近爆发的传染病
  • 新郑市住房建设局网站网站建设Skype打不开
  • 专业网站设计制作优化排名ui设计30岁后的出路
  • 做儿童方面的网站wordpress大前端dux5.2
  • 企业网站设计策划案信用网站标准化建设模块都有哪些
  • 有关网站建设有那些功能wordpress爆破软件
  • 做网站的有哪些公司网站开发需不需要考研
  • 自已建网站微信登录网站logo设计教程
  • 赤峰网站建设建站公司企业门户网站运营推广
  • 如何用WordPress建小说站wordpress怎么做301重定向
  • 建站技术服务新建的网站打不开
  • 网站解析后怎么做一般做个网站需要多少钱
  • 办个人网站租空间wordpress邮件发送不出去
  • 云南网站建设网站运营wordpress 总站模板
  • 带注册的网站需要多大空间信阳建设网站
  • 用jsp做电影网站的界面建设网站需要哪些