关于增删改查的个人理解 连接数据库只需三步

链接数据库进行增删改查,我个人认为需要以下三步

第一步.毫无疑问DBUtil

DButi非常简单只有三行代码
第一行没啥好说的就不解释了

 Connection conn = null;

第二行加载驱动
Class.forName根据"com.microsoft.sqlserver.jdbc.SQLServerDriver"找到Driver类让它运行以便于接下来我们要连接数据库的操作

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

第三行连接数据库
Connection的中文意思是:联系 连接
这行代码就是获取一个数据库的连接,然后就可以根据这个连接对数据库操作

conn= DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=db","sa","1");

第二步.sql语句

一定要理解明白sql语句,然后才能根据sql语句得到你想要的数据,几个常用的sql语句
1.查找

select *  from users where  id=1

上面这段sql语句译为:在users表中查找id为1的那条记录的所有字段
重点:语法格式,*号代表这条记录的所有字段,当然你也可以查找特定的字段比如,我要查找users表中id为1的name属性和age属性select name ,age from users where id=1要记住字段名要用“,”号隔开,再比如我要查找users表中name属性是“张三”,age属性是15的那条记录select * from users where name = '张三' and age = 15要记住多个条件要用and或or连接,如果要查找整张表,那就跟简单了 select * from users不需要where条件,译为:查询users表中的数据,没有任何条件,只要是users表中的信息都符合要求。
一般作用于:登入验证
2.删除

delete from users where id=15

上面这条语句译为:删除users表中id为15的记录
重点:语法格式,删除条件一定要准确不然就会出现误删数据,最好就是找那些独一无二的条件比如主键。
一般作用于:删除信息
3.更新

update  users set name = '李四',age=18 where id=15

上面这条语句译为:将id为15的那条记录中的name属性改为李四,age属性改为18。
重点:语法格式,修改多个字段要用“,”号隔开 。
一般作用于:更新信息

4.增加

insert into users(name,age,sex) values('张三','18','男')

上面这条语句译为:为users表新增一条记录,这条记录的name属性为‘张三’,age属性为‘18’,sex属性为‘男’。
重点:语法格式 ,表名后面的字段名要和values后面的属性值一 一对应。
一般作用于:注册用户

第三步.理解代码

第一条代码

String sql = "select * from users where id = ? and user = ? "

sql语句没啥可说的,看完第二步应该都能看懂这条代码是什么意思,译为:声明一个String类型的变量,变量名为sql,并将sql语句作为字符串赋值给sql

第二条代码

 Connection conn = DBUtil.getConn();

这条代码,就是第一步DBUtil中写了三行代码获取了连接数据库的连接,将这个连接给了conn,这时候conn就是可以连接数据库的链接了
第三条代码

    PreparedStatement ps = conn.prepareStatement(sql);

这条代码,通过conn(数据库连接),将sql(sql语句)提交到数据库进行预编译,但是数据库并没有执行sql语句,只是进行了预编译,他可以检测出sql语句是否有错误,sql语句没有错误就会获取一个prepareStatement对象然后又将prepareStatement给了ps,如果有错误就直接异常报错了。
第四条代码

 ps.setInt(1, id);
 ps.setString(2, user);

可以看第一条代码,为什么SQL语句中id=?,而这条代码就是将‘?’号替换掉,替换成我们想要的数据,就比如说我们想要的sql语句是select * from users where id = 1 and user = '张三'怎样才能把"select * from users where id = ? and user = ? "改为我们想要的语句呢?很明显将第一个‘?’号替换为 1 将第二个‘?’号替换为 张三 而第四条代码就是做的此类操作,这是两条代码为什么说是一条呢?其实这两条代码的作用是一样的,都是替换的作用,只不过是你想要将什么样的数据替换给‘?’号,肯定要有区分啊,所以如果你想用int类型替换‘?’号就用setInt(),想要用String类型替换‘?’号就用setString(),无论是setInt()还是setString()都有两个参数,参数1,是‘?’号所在sql中的位置,比如 ps.setInt(1, id)译为:将第一个‘?’号换为id。
第五条代码

ResultSet rs =ps.executeQuery();

这条代码是让sql语句在数据库中运行,并将返回的结果集赋值给rs,这条代码只有在查询的时候用,因为只有查询的时候才有结果集,也就是说sql语句只要是select开头的就用这条代码,之后就会获取一个结果集rs,也就是说rs中存储了本次查询的所有数据,最后对rs进行遍历取值。
第六条代码

int flag = ps.executeUpdate()

这条代码是让sql语句在数据库中运行,并返回一个int值,返回的int值是什么意思呢?返回值是你所使用的sql语句对表中的数据,做了几次操作,比如新增一条信息就会返回1,更新三条信息就会返回三,这条语句是在对数据库中的数据进行 删除 更新 新增的时候用的 他会返回你删除 更新 新增的次数,

如果你认真的看完了此条博客点这里尝试理解其中的代码,如有疑问欢迎留言

发布了45 篇原创文章 · 获赞 47 · 访问量 1719

猜你喜欢

转载自blog.csdn.net/qq_44784185/article/details/103002194