如何用java进行数据库操作
1、首先我们应该了解一下java进行数据操作的原理,如下图所示:
2、从上图我们可以知道,我们的应用旯皱镢涛程序是通过JDBC进行数据库操作的。而JDBC其实仅仅是一套规范,它定义了一系列通用的操作,它会有不同的实现,这个实现就叫JDBC驱动。不同的数据库会有不旎髂坑若同的驱动,比如MySQL有MySQL驱动,oracle会有oracle驱动。正是这些驱动程序帮助我们真正地操作数据库。本文使用MySQL驱动:mysql-connector-java-5.1.40.jar
3、接下来我们看下如何使用JDBC进行操作。我们可以按照以下5个步骤进行:
4、获取数据库连接
5、代码中的url是jdbc数据库连接地址,user是用户名,passwor蟠校盯昂d是密码,这些都是开发者自己设置的。driver是驱动的类名,对于MySQL来说就是com.mysql.jdbc.Driver。static语句的意思是在类初始化的时候去注册驱动。这一步是必须要的,如果没有注册驱动,那么数据库连接就无法使用。接下来在getConnection方法中,我们使用DriverManager获取数据库连接,并且保存在了全局变量connection中,这是为了复用数据库连接,防止频繁地打开和关闭。
6、编译sql语句
7、我们嚼但匙噻首先写了一个sql语句:insert into user(id,name)values(?,?)。意思是要廪咫錾净做user这张表里插入id和name,其中两个问号是占位符的意思,然后通过PreparedStatement对sql进行编译,然后用setXXX方法把含有问号的那两个地方用真实的数据替换,按照代码中的实现,最终这个sql语句会变成:insert into user(id,name)values(1,'test')。
8、执行sql语句在上图中,我们使用PreparedStatement对sql进行了编译,编译完成后就可以使用它的execute方法进行执行,这时候JDBC会使用底层的MySQL驱动程序,将真正的sql命令发给远程的数据库,从而完成数据库插入。
9、处理返回结果处理返回结果一般在查询语句中用到,如下图:
10、查询语句的执行使用的是executeQuery,而不是execute。它会返回一个ResultSet,通过这个ResultSet我们可以获取返回的值。ResultSet是一行一行取数据的,它有个next方法,用来判断是否还有数据,如果还有数据,就会取下一行。对于一行数据,我们需要知道它的列名,然后用getXXX获取列值。
11、关闭连接关闭连接使用connection的close方法。但是,由于数据库连接建立的开销比较大,所以我们一般不会去关闭,而是复用一个或者多个数据库连接,从而提高系统性能。