Eclipse中java向数据库中添加数据

前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据。

注意事项:如果参考下面代码,需要

改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息)

 1 package com.ningmeng;
 2
 3 import java.sql.*;
 4
 5 /**
 6  * 1:向数据库中添加数据
 7  * @author biexiansheng
 8  *
 9  */
10 public class Test01 {
11
12     public static void main(String[] args) {
13         try {
14             Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
15             System.out.println("加载数据库驱动成功");
16             String url="jdbc:mysql://localhost:3306/test";//声明数据库test的url
17             String user="root";//数据库的用户名
18             String password="123456";//数据库的密码
19             //建立数据库连接,获得连接对象conn(抛出异常即可)
20             Connection conn=DriverManager.getConnection(url, user, password);
21             System.out.println("连接数据库成功");
22             //生成一条mysql语句
23             String sql="insert into users(username,password,age,sex) values(‘小别‘,‘123456‘,22,0)";
24             Statement stmt=conn.createStatement();//创建一个Statement对象
25             stmt.executeUpdate(sql);//执行sql语句
26             System.out.println("插入到数据库成功");
27             conn.close();
28             System.out.println("关闭数据库成功");
29         } catch (ClassNotFoundException e) {
30             // TODO Auto-generated catch block
31             e.printStackTrace();
32         }//
33         catch (SQLException e) {
34             // TODO Auto-generated catch block
35             e.printStackTrace();
36         }
37
38     }
39
40 }

详细运行结果

这样就可以完美插入数据,增删改查第一步完美解决。

简单介绍一下所使用的知识点:

在java程序中一旦建立了数据库的连接,就可以使用Connection接口的createStatement()方法来获得statement对象

然后通过excuteUpdate()方法来执行sql语句,就可以向数据库中添加数据了。

1:createStatement()方法是Connection接口的方法,用来创建Statement对象

2:Connection接口代表和特定的数据库连接,要对数据库中数据表的数据进行操作,首先要获取数据库连接。

3:Statement接口用于创建向数据库中传递SQL语句的对象,该接口提供了一些方法可以实现对数据库的常用操作。

4:Statement接口中的excuteUpdate()方法执行给定的SQL语句,该语句可以是INSERT,UPDATE,DELETE语句。



第二种方法

使用PreparedStatement接口向mysql数据库中插入数据

 1 package com.ningmeng;
 2
 3 import java.sql.*;
 4
 5 /**
 6  * 1:使用PreparedStatement接口来执行插入语句
 7  *
 8  * @author biexiansheng
 9  *
10  */
11 public class Test02 {
12
13     public static void main(String[] args) {
14         // TODO Auto-generated method stub
15         try {
16             Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
17             System.out.println("加载数据库驱动成功");
18             String url="jdbc:mysql://localhost:3306/test";//声明数据库test的url
19             String user="root";//数据库用户名
20             String password="123456";//数据库密码
21             //建立数据库连接,获得连接对象conn
22             Connection conn=DriverManager.getConnection(url, user, password);
23             System.out.println("连接数据库驱动成功");
24             //生成一条SQL语句
25             String sql="insert into users(username,password,age,sex) values(?,?,?,?)";
26             PreparedStatement ps=conn.prepareStatement(sql);//创建一个Statement对象
27             ps.setNString(1,"lisi");//为sql语句中第一个问号赋值
28             ps.setString(2,"123456");//为sql语句中第二个问号赋值
29             ps.setInt(3,24);//为sql语句第三个问号赋值
30             ps.setInt(4,2);//为sql语句的第四个问号赋值
31             ps.executeUpdate();//执行sql语句
32             conn.close();//关闭数据库连接对象
33             System.out.println("关闭数据库连接对象");
34         } catch (ClassNotFoundException e) {
35             // TODO Auto-generated catch block
36             e.printStackTrace();
37         } catch (SQLException e) {
38             // TODO Auto-generated catch block
39             e.printStackTrace();
40         }
41
42
43     }
44
45 }

由于刚才不小心多执行了一遍第一个程序,所以多了一行id==7的,特此注释一下

1:PreparedStatement接口继承Statement,用于执行动态的SQL语句,通过PreparedStatement实例执行SQL语句,将被预编译并且保存到PreparedStatement实例中,从而可以反复的执行该SQL语句。

2:PreparementStatement接口中的方法,如executeUpdate在此PrepareStatement对象中执行sql语句,该sql语句必须是一个INSERT.UPDATE,DELETE语句,或者是没有返回值的DDL语句。

3:setString(int pIndex,String str)将参数pIndex位置上设置为给定的String类型的参数,俗语就是在第几个位置写上符合的数据类型

setInt(int pIndex,int x)

其他的都类似,不作多叙述

时间: 2024-10-19 20:54:17

Eclipse中java向数据库中添加数据的相关文章

C#中几种数据库的大数据批量插入

C#语言中对SqlServer.Oracle.SQLite和MySql中的数据批量插入是支持的,不过Oracle需要使用Orace.DataAccess驱动. IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider.批量插入的实现可以通过实现该接口来实现. /// <summary> /// 提供数据批量处理的方法. /// </summary> public interface IBatcherProvider : IProviderServic

java导出数据库里的数据至Excel进行数据备份

调用部分: package com.otdrmsys.action; import com.otdrmsys.util.ResultSetToExcel; public class ExcelExport { public static void main(String[] args) { // String fileName = "otdr";//文件名,不带路径,不带.xls后缀 // String [] coloumItems = {"otdr编号",&quo

PHP中实现在数据库中的增、删、查、改

其实要想在PHP中访问并获取到数据库中的数据其实并不难,下面我以例子为大家介绍: 首先,打开PHP软件和WampServer服务,确保在WampServer中的phpMyAdmin中有你要使用的数据表, 在PHP中新建一个页面,然后用上回说到的方法连接到数据库, 如果你需要查看你当前的数据表中的数据,那么 执行一下代码: mysql_query("这里是查询数据表的语句"*"号表示查询出所有的信息  后面是你要查询的数据表名) 返回一个资源类型,这里命名为$sql; 由于我们

Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav

SQL 中怎么查询数据库中具有的表、存储过程、试图数目、总触发器数、作业数

用户表:select count(*) 总表数 from sysobjects where xtype='u' 刚才那个是用户表,下面这个是系统表加用户表: select count(*) 总表数 from sysobject s where xtype in('u','s') 总视图数:select count(*) 总视图数 from sysobjects where xtype='v' 总存储过程数:select count(*) 总存储过程数 from sysobjects where

Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用java新的日期时间API重写农历LunarDate. package com.xkzhangsan.time; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import ja

Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date

从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转Date.下面是时间类互相转换大全,包含Instant.LocalDate.LocalDateTime.LocalTime和Date的相互转换,下面是一个工具类,仅供参考: package com.xkzhangsan.time.converter; import java.time.Instant;

Java日期时间API系列17-----Jdk8中java.time包中的新的日期时间API类,java日期计算4,2个日期对比,获取相差年月日部分属性和相差总的天时分秒毫秒纳秒等

通过Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别 ,可以看出java8设计非常好,新增了Period和Duration类,专用于对比2个时间场景: Period,可以获取2个时间相差的年月日的属性. Duration,可以获取2个时间相差总的天时分秒毫秒纳秒. 下面应用: /** * 获取2个日期的相差年月天的年数部分 * @param startInclusive * @param endExclusive

Java日期时间API系列20-----Jdk8中java.time包中的新的日期时间API类,ZoneId时区ID大全等。

Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等.中已经对ZoneId说明,并列出了常用时区ID信息. 并且通过 java.time.ZoneId.getAvailableZoneIds()获取到所有可用时区ID. 1.测试代码 /** * 获取可用时区ID */ @Test public void getAvailableZon