当前位置:首页 » 数据仓库 » java数据库如何存入
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

java数据库如何存入

发布时间: 2023-01-24 12:31:51

① 在java中如何将数组里的数据存入数据库

保存字节数组到数据库分两步:
第一、利用FileInputStream.read(byte[])方法把内容读取到byte[]数组中,比如图片是由二进制数组成的,就可以定义为一个字节数组。
第二、在数据库中对应记录字段应该设置为blob类型,这样就能够顺利保存了
事例代码如下:
PreparedStatement stmt = connection.generatePreparedStatement("INSERT INTO ... ");
stmt.setBytes(1, yourByteArray);

其中,yourByteArray是你读出来的字符数组。

② java中如何将从控制台获取的信息存入数据库

方法一:使用管道流截取输出到控制台的信息
PipedInputStream;
PipedOutputStream;
方法二:使用log4j等技术把要输出的信息使用AOP编程输出
方法三:抛异常到数据库

不管使用哪种方法,都是在打印的同时提取数据,那么提取到的数据你就可以随意存入数据库了。没见过将已经打印出来的数据再读取存数据库的操作,原理上可以,但没必要。你在sysout的时候已经获取数据了,为什么要打印出来再重新读数据,然后存数据库呢?很绕是吧,呵呵。 日志技术就是要解决这些问题的,配置好log4j,你不用每次都操作存数据库,它会自己帮你把打印的东西存数据库的。
建议先看下log4j

③ java中怎么向数据库插入数据

Java程序向数据库中插入数据,代码如下:

//首先创建数据库,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置数据源(odbc);
//然后再eclipse中创建类(ConnDb,Test,TestBean)ConnDb功能为连接数据库,查询,插入,删除,修改数据的类,Test为含有main方法的测试类,TestBean为数据表中的字段属性及set,get方法
//以下是ConnDb代码:
packagedb;
importjava.sql.Connection;
importjava.sql.DriverManager;
import
java.sql.ResultSet;
importjava.sql.SQLException;
import
java.sql.Statement;
importjava.util.ArrayList;
publicclassConnDb{
publicConnectionstartConn(Connectionconn){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:数据库","用户名","密码");
}catch(Exceptione){
System.out.println("连接数据库时出现错误");
}
returnconn;
}

publicArrayListexecuteQuery(Stringsql){
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
ArrayListlist=newArrayList();
try{
conn=startConn(conn);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);//sql为sql语句例如"select*from
表名",从main方法中传进来,这里用的是ArrayList类将查询结果存储起来
while(rs.next()){
TestBeantb=newTestBean();
tb.setTid(rs.getString("tid"));
tb.setTname(rs.getString("tname"));
tb.setTinfo(rs.getString("tinfo"));
list.add(tb);
}
}
catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
closeConn(rs,stmt,conn);
}
returnlist;
}
publicvoidexecuteUpdate(Stringsql){
Connectionconn=null;
Statementstmt=null;
try{
conn=
startConn(conn);
stmt=conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLExceptione){
System.out.println("修改,插入或者删除数据库数据时发生错误!");
}finally{
closeConn(stmt,conn);
}
}
publicvoidcloseConn(ResultSetrs,Statementstmt,Connectionconn){
try{
if(rs!=
null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
catch(SQLExceptione){
//TODOAuto-generatedcatch
block
System.out.println("关闭数据库的时候发生错误!");
}
}
publicvoidcloseConn(Statementstmt,Connectionconn){
try{
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
catch(SQLExceptione){
//TODOAuto-generatedcatchblock
System.out.println("关闭数据库的时候发生错误!");
}
}
}

④ Java实体类属性是另一个类的时候如何存数据库

添加注解存数据库。
当创建的类和数据库里面的每一项一一映射时,但是又需要多些一些属性是不存在数据库里面的,此时可以在此属性上加一个注解@TableField(exist = false)就可以,另外这里添加一些经常用到的注解@Id 表示这个字段是主键@Column(name = “xx”) 表示把字段和数据库的名字对应,理解成起别名@Transactional 可以作用在接口、类、类方法。

⑤ 用java怎样把数据存到数据库中

只能写个大概的,要写数据到数据库中,先得在数据库中建库,库里建表,表里建字段,然后java里建立数据库连接,用SQL语言写数据到表中的字段x0dx0aClass.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); x0dx0a//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名"; //7.0、2000x0dx0aString url="jdbc:sqlserver://localhost:1433;DatabaseName=数据库名"; //2005x0dx0aConnection conn=null;x0dx0aconn= DriverManager.getConnection(url,用户名,密码); x0dx0aPreparedStatement pst=null;x0dx0apst=conn.prepareStatement("Insert Into grade(表名) Values (?)");x0dx0apst.setInt(1,你要写的整弄数据);x0dx0a//pst.setString(2,你要写的字符串数据);x0dx0apst.addBatch();x0dx0apst.executeBatch();

⑥ java怎样将读取数据写入数据库

Java可以使用JDBC对数据库进行读写。JDBC访问一般分为如下流程:

一、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。

例如:

try{

//加载MySql的驱动类

Class.forName("com.mysql.jdbc.Driver") ;

}catch(ClassNotFoundException e){

System.out.println("找不到驱动程序类 ,加载驱动失败!");

e.printStackTrace() ;
}

成功加载后,会将Driver类的实例注册到DriverManager类中。

二、提供JDBC连接的URL 连接URL定义了连接数据库时的协议、子协议、数据源标识。

书写形式:协议:子协议:数据源标识 协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为

gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。

三、创建数据库的连接

要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。

使用DriverManager的getConnectin(String url,String username,String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。

例如:
//连接MySql数据库,用户名和密码都是root

String url = "jdbc:mysql://localhost:3306/test" ;

String username = "root" ;

String password = "root" ;

try{

Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){

System.out.println("数据库连接失败!");
se.printStackTrace() ;
}

四、创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过PreparedStatement实例实现。

3、执行数据库存储过程。通常通过CallableStatement实例实现。

具体的实现方式:
Statement stmt = con.createStatement() ;

PreparedStatement pstmt = con.prepareStatement(sql) ;

CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;

五、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute

1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。

2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;

int rows = stmt.executeUpdate("INSERT INTO ...") ;

boolean flag = stmt.execute(String sql) ;

六、处理结果 两种情况:
1、执行更新返回的是本次操作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。

使用结果集(ResultSet)对象的访问方法获取数据:

while(rs.next()){

String name = rs.getString("name") ;

String pass = rs.getString(1); // 此方法比较高效(列是从左到右编号的,并且从列1开始)
}

七、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs != null){ // 关闭记录集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

if(stmt != null){ // 关闭声明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

if(conn != null){ // 关闭连接对象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

(6)java数据库如何存入扩展阅读

样例

package first;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.concurrent.Executors;

import java.util.concurrent.ScheledExecutorService;

import java.util.concurrent.TimeUnit;

public class lianjie {

public static void main(String[] args) {

Runnable runnable = new Runnable() {

public void run() {

//声明Connection对象

Connection con;

//驱动程序名

String driver1 = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

//URL指向要访问的数据库名

String url1 = "jdbc:sqlserver://IP地址和端口号;DateBaseName=数据库名";

//MySQL配置时的用户名

String user1 = "user";

//MySQL配置时的密码

String password1 = "user";

//声明Connection对象

Connection con1;

//驱动程序名

String driver2 = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

//URL指向要访问的数据库名

String url2 = "jdbc:sqlserver://IP地址和端口号;DateBaseName=数据库名";

//MySQL配置时的用户名

String user2 = "user";

//MySQL配置时的密码

String password2 = "user";

//遍历查询结果集

try {

//加载驱动程序

Class.forName(driver1);

//1.getConnection()方法,连接MySQL数据库!!

con = DriverManager.getConnection(url1,user1,password1);

if(!con.isClosed())

System.out.println("成功连接到数据库!");

try {

//加载驱动程序

Class.forName(driver2);

//1.getConnection()方法,连接MySQL数据库!!

con1 = DriverManager.getConnection(url2,user2,password2);

if(!con1.isClosed())

System.out.println("成功连接到数据库!");

//2.创建statement类对象,用来执行SQL语句!!

Statement statement = con.createStatement();

//要执行的SQL语句

String sql = "use 数据库名 select * from 表名";

//3.ResultSet类,用来存放获取的结果集!!

ResultSet rs = statement.executeQuery(sql);

//要执行的SQL语句

String sql1 = "use tiantiana insert into Table_1(tiantian,qiqi,yuyu)VALUES(?,?,?)";

//3.ResultSet类,用来存放获取的结果集!!

PreparedStatement pst = con1.prepareStatement(sql1);

System.out.println ("tiantian"+"/t"+"qiqi"+"/t"+"yuyu");

while(rs.next()){

System.out.print(rs.getString(1));

System.out.print(rs.getString(2));

System.out.print(rs.getString(3));

pst.setString(1,rs.getString(1));

pst.setString(2,rs.getString(2));

pst.setString(3,rs.getString(3));

pst.executeUpdate();

}

pst.close();

rs.close();

//2.创建statement类对象,用来执行SQL语句!!

Statement statement1 = con.createStatement();

//要执行的SQL语句

String sql2 = "use 数据库名 select * from 表名";

//3.ResultSet类,用来存放获取的结果集!!

ResultSet rs1 = statement1.executeQuery(sql2);

//要执行的SQL语句

String sql3 = "use tiantiana insert into Table_2(tiantian1,qiqi1,yuyu1)VALUES(?,?,?)";

//3.ResultSet类,用来存放获取的结果集!!

PreparedStatement pst1 = con1.prepareStatement(sql3);

System.out.println ("tiantian1"+"/t"+"qiqi1"+"/t"+"yuyu1");

while(rs1.next()){

System.out.print(rs1.getString(1));

System.out.print(rs1.getString(2));

System.out.print(rs1.getString(3));

pst1.setString(1,rs1.getString(1));

pst1.setString(2,rs1.getString(2));

pst1.setString(3,rs1.getString(3));

pst1.executeUpdate();

}

//关闭链接

rs1.close();

pst.close();

con1.close();

con.close();

} catch(ClassNotFoundException e) {

//数据库驱动类异常处理

System.out.println("对不起,找不到驱动程序!");

e.printStackTrace();

} catch(SQLException e) {

//数据库连接失败异常处理

e.printStackTrace();

}catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

System.out.println("数据库数据成功获取!!");

}

} catch(ClassNotFoundException e) {

//数据库驱动类异常处理

System.out.println("对不起,找不到驱动程序!");

e.printStackTrace();

} catch(SQLException e) {

//数据库连接失败异常处理

e.printStackTrace();

}catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}finally{

System.out.println("数据库数据成功获取!!");

}

}

};

ScheledExecutorService service = Executors

.();

// 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间

service.scheleAtFixedRate(runnable, 10, 60*2, TimeUnit.SECONDS);

}

}

⑦ java怎么将收集到的数据存入数据库

你要达到的目的其实就是在jvm启动的时候把数据库数据加载一份到内存,一个静态变量和一个静态初始化块就可以搞定你的问题,这两者都是在类加载的时候初始化一次,像前面回答的一样,你可以用一个HashMap搞定。
稍微具体来说,一个静态变量
public static final Map<key,value> cache=new HashMap<key,value>()
static {
cache=请求数据库操作
}

key你自己加,String还是int都行,value是你数据库的结构,可以写个实体。获取的时候直接cache.get(key)就可以了。

⑧ java配置类应该怎么存数据库

对象和关系再映射存入数据库。
将对象映射到数据库的关系上类对应表,字段对应列,聚合字段对应一对多或者多对多,这样用起来很方便,可以只写java就完成数据库操作可能还要写jpql,对于简单的逻辑可以用criteria,纯对象化的查询,java有个ORM的规范,叫JPA,hibernate实现了JPA,它还有EclipseLink等实现。