JAVA从数据库中拿到数据

来源:互联网 发布:网络规划设计师教材 编辑:程序博客网 时间:2024/05/16 17:34

我们都知道从数据库中拿到数据需要使用的是jdbc链接数据,然后将数据存储到ResultSet这样的集合中,然后利用Resultset的方法getObject获取里面的记录并且打印到页面上,当然我们可以将数据存在map中或者是list中,然后打印到页面上,那么这个具体的过程怎样的来实现。

jdbc,我们链接数据库需要导入一个包mysql-connector-java.jar,我们将这个包添加到项目中,然后创建路径biulder path,下面的代码就是让我们自己写了,其实我们可以做的是根据数据库里里面的数据,我们可以创建一个对象来存储这个一条记录,一般我们都是这样的,下面是我在数据库中创建的一个表,我们可以看到的是这个表是有三个字段

分别是id,username,password,然后我们就可以想在创建一个User类,然后面的属性我们可以使用数据表中的字段,

上面是我们做的第一步,然后我们就需要链接数据库并且将数据拿出来

public static Connection getConnection() throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
        String string="jdbc:mysql://localhost:3306/jdbcdemo";
       Connection connection=DriverManager.getConnection(string,"root","123456");
       return connection;
}

解析上面的代码:上面的代码是获得和数据库的链接,那么什么是看链接:我们可以看文档中解释这样的

A connection (session) with a specific database. SQL statements are executed and results are returned within the context of a connection.

A Connection object's database is able to provide information describing its tables, its supported SQL grammar, its stored procedures, the capabilities of this connection, and so on. This information is obtained with the getMetaData method. 

一个到指定的数据库的链接,sql语句就可以通过这个链接在数据库中执行,并且得到返回的结果。

在Connection中有这样的一个方法:Statement createStatement();

Creates a Statement object for sending SQL statements to the database.
这个函数是创建一个Statement对象,这个对象是可以发送sql语句到数据,其实在java中我们可以感觉参数的传递是一种无形的,我们的链接创建一个statement,然后得到statement的一个实例,这个实例中其实要包含中我们的数据库链接的一些信息,是因为在创建的时候Connection对象的本身就携带了很多的信息,当然也包括数据的链接的信息。我们可以看到下面就是我们从数据库中获取到数据并且存储到ResultSet 这样的一个中:
public static ResultSet getUserData() throws ClassNotFoundException, SQLException{
String sql="select * from user limit 10";
Statement statement=getConnection().createStatement();
ResultSet set=statement.executeQuery(sql);
return set;
}
现在ResultSet的set对象也就携带者我们从数据库中得到的信息,现在将起拿出来,我们可以存放到一个list表中我们将数据首先是放到user中,然后将user装进list

public ArrayList<User> getUserArray() throws ClassNotFoundException, SQLException
{
ArrayList<User> list=new ArrayList<User>();
ResultSet set=InsertData.getUserData();
while(set.next()){
   User user =new User();
user.setId((int)set.getObject(1));
user.setUsername((String)set.getObject(2));
   user.setPassword((String)set.getObject(3));
list.add(user);
}
return list;

}

我们可以通过list的get(int index)取到指定的对象,进而显示到页面上




0 0