练习题——Gson解析、利用JDBC连接数据库进行数据的存取及查询等的综合
2016-08-28 19:31
781 查看
/** *对数据的查询类 */ package com.liuzhonglin.exercise; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; //3.在另外一个类当中读取数据库的结果。 //规则:用户输入id,就能得到关于这个id的产品名和产品信息。 // 可以循环输入,如果用户输入exit,就退出查询系统。 public class ExerciseDemo01 { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:/"+"e:/test.db"); Statement stmt = conn.createStatement(); while(true){ System.out.println("请输入id:"); String str = br.readLine(); if(str.equals("exit")){ System.out.println("退出系统"); stmt.close(); conn.close(); return; } String sql = "select * from aa where id="+str; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ System.out.println("产品编号:"+str+",产品名称:"+rs.getString("company")+"\n产品详情:"+rs.getString("summary")+"\n"); } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
<pre name="code" class="java">package com.liuzhonglin.exercise; //http://218.244.149.129:9010/api/recommend.php // //1.通过接口获取网络数据,并解析 //2.把解析之后的结果当中的属性:id company summary 作为表当中的一条存入到数据库当中。 //3.在另外一个类当中读取数据库的结果。 // 规则:用户输入id,就能得到关于这个id的产品名和产品信息。 // 可以循环输入,如果用户输入exit,就退出查询系统。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; public class ExerciseDemo { public static void main(String[] args) { //解析数据 String path = "http://218.244.149.129:9010/api/recommend.php"; String str = HttpUtils.getByStringokHttp(path); Data data = new Gson().fromJson(str, Data.class); System.out.println(data); //利用JDBC访问数据库,将解析出来的数据存入到数据库中 try { Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:/" + "e:/test.db"); Statement stmt = conn.createStatement(); String sql = "create table if not exists aa(id integer,company String,summary String)"; stmt.executeUpdate(sql); String sql1 = "insert into aa(id,company,summary) values (?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql1); ps.executeUpdate(); List<Company> list = data.getRecommend(); for (Company c : list) { ps.setInt(1, c.getId()); ps.setString(2, c.getCompany()); ps.setString(3, c.getSummary()); ps.executeUpdate(); } //将数据存入数据库中的第二种方法 // int count=data.getRecommend().size(); // for (int i = 0; i < count; i++) { // ps.setInt(1,data.getRecommend().get(i).getId()); // ps.setString(2, data.getRecommend().get(i).getCompany()); // ps.setString(3, data.getRecommend().get(i).getSummary()); // ps.executeUpdate(); // } //在网数据库中存数据时候不用ResultSet,ResultSet结果集一般在从数据库中读取数据的时候用 // ResultSet rs = stmt.executeQuery(sql1); // while(rs.next()){ // } stmt.close(); conn.close(); ps.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }
/* * 工具类 */ package com.liuzhonglin.exercise; import java.io.IOException; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class HttpUtils { public static String getByStringokHttp(String path){ String result = null; OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(path).get().build(); try { Response response = client.newCall(request).execute(); if(response.isSuccessful()){ result = response.body().string(); } } catch (IOException e) { e.printStackTrace(); } return result; } }
/* * Bean类 */ package com.liuzhonglin.exercise; public class Company { private int id; private String company; private String summary; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public Company(int id, String company, String summary) { super(); this.id = id; this.company = company; this.summary = summary; } public Company() { super(); // TODO Auto-generated constructor stub } @Override public String toString() { return "Company [id=" + id + ", company=" + company + ", summary=" + summary + "]"; } }
package com.liuzhonglin.exercise; import java.util.List; public class Data { List<Company>recommend; public List<Company> getRecommend() { return recommend; } public void setRecommend(List<Company> recommend) { this.recommend = recommend; } @Override public String toString() { return "Data [recommend=" + recommend + "]"; } }
相关文章推荐
- Android连接服务器数据库查询+Gson解析(List和Map)格式json数据(二)
- Android连接服务器数据库查询+Gson解析(List和Map)格式json数据(一)
- 《JavaWeb---简单应用---练习JDBC,JSTL》---上传Excel文件,利用工具包解析,将数据储存到数据库中,可以查询删除
- 利用GSON对json数据中的时间类型字符串进行处理,并且进行数据库查询
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作代码
- orcle 远程连接其他数据库 进行查询数据
- 利用JDBC连接实现跨服务器跨数据库跨表数据传输
- 利用dbcp数据库连接池连接数据库,并利用dbtuils框架对数据库test中book表进行插入、删除、修改、查询的操作。book表结构如下:(id,name,price,author,descrip
- 利用工具进行数据库数据的复杂查询 [转]
- 【java基础:JDBC】通过读取配置文件进行数据库连接并读取数据的Demostration
- Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
- 数据库中的记录通过servlet回显到jsp页面中(连接数据库或者查询參照:对数据进行增删改查)
- Dom4j解析XML学习之利用解析的数据进行JDBC操作
- 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等
- db数据库利用第三方框架进行提取和解析数据
- JAVA+JDBC对数据库的数据进行增加、修改、删除、查询等操作
- 【Servlet】在Servlet3.0中利用json+ajax把数据库查询出来的数据推向前台显示,无额外的json解析包
- JDBC实现数据库的几种基本操作(查询,分页查询,根据关键字进行查询以及插入数据)
- Hibernate中利用Criteria进行数据库表数据的增加查询。
- jdbc连接oracl数据库并进行测试查询