Spark web Framework 结合sql2o连接MySQL
来源:互联网 发布:sql最后一行加合计行 编辑:程序博客网 时间:2024/05/20 16:08
转发请注明原文http://blog.csdn.net/qq_34911465/article/details/70666392
Spark
是一个轻量级的JAVA网络框架,使用这个框架可以轻易开发一个java web应用。
Sql2o
简单的java框架,用来简化java的数据库连接
这里将写一个简单的例子,使用spark和sql2o来连接mysql
文件结构:
按照图中的文件结构来简单的介绍,这里的resouces文件夹下的是将用到的界面文件,java文件夹下是主代码,包括了与数据库连接的方面
界面:
首先先编写一个html界面,或者直接从网络上下载一个界面来使用即可,按照官网的描述,编写的界面放在resource文件夹下的public里面。
使用这个简单的界面来传递数据并保存,下图是数据库的存储表
Data代码
public class Data{ public int id; public String username; public String password; public int age;}
与数据库创建连接
创建连接这里使用了单例模式,以便只创建一个对象,节省资源
public class myDao{ private static Sql2o sql2o; public static Sql2o getSql2o(){ if(sql2o==null){ synchronized(myDao.class){ if(sql2o==null)sql2o=new Sql2o("jdbc:mysql://localhost:3306/spark" ,"root","123@qq.COM"); } } return sql2o; }}
数据库操作
public class Sql2oModel{ private Sql2o sql2o; public Sql2oModel(){ sql2o=myDao.getSql2o(); } public Sql2oModel(Sql2o _sql2o){ sql2o=_sql2o; } //将数据插入到数据库中,当然可以把参数改成Data对象,不过这里用的是直接传参 public void insertPost(int id,String username, String password,int age){ String insertSql="INSERT INTO example(id,username,password,age) values(:id,:name,:word,:age)"; try (Connection con=sql2o.open()){ con.createQuery(insertSql) .addParameter("id",id).addParameter("name",username) .addParameter("word",password).addParameter("age",age) .executeUpdate(); } } //将数据库中所有的成员读取出来并且返回 public List<Data> getAllModel(){ String querySql="SELECT id,username,password,age From example"; try (Connection con=sql2o.open()){ return con.createQuery(querySql).executeAndFetch(Data.class); } }}
主函数代码
public class HelloWorld{ private static List<Data> list; private static Sql2oModel sql2oModel; public static void main(String[] args){ staticFiles.location("/public"); post("/postuser",(req,res)->{ int id=req.queryMap().get("id").integerValue(); String username=req.queryMap().get("username").value(); String password=req.queryMap().get("password").value(); int age=req.queryMap().get("age").integerValue(); if(sql2oModel==null)sql2oModel=new Sql2oModel(); sql2oModel.insertPost(id,username,password,age); res.status(200); return "<h1>success</h1>"; }); get("/alluser",(req,res)->{ if(sql2oModel==null)sql2oModel=new Sql2oModel(); list=sql2oModel.getAllModel(); String LS="<h3>Below is id,username,password,age :"; for(Data model:list){ LS+="<h4> "+model.id+" , "+model.username+" , "+model.password+" , "+model.age+"</h4>"; } return LS; }); }}
主函数中只写了两个方法,一个是使用post并调用数据库操作中的插入方法,将提交的表单中的数据插入到数据库中,而get方法,是调用数据库操作中的获取数据的方法,取出数据库中的所有数据并且显示出来。当然这里还可以写redirect方法,将一个链接重定向到我们之前所写的html文件,而不必打很长的地址来访问。
从上面的代码我们可以看到,使用spark和sql2o来写一个java web应用,并且使用这个web应用保存数据的代码十分简洁。
sql2o也比直接使用jdbc要简单的多,少写了很多try catch语句块,并且这个开发过程也更简便,而使用orm呢,感觉就比较麻烦了,虽然没有使用过orm,但是在看一些著名的orm如hibernate的官网描述时,觉得很麻烦,又有xml配置文件要写。就是觉得麻烦,不过使用orm也会有使用orm的优点,这就不再赘述了。
因为项目是使用maven来编译连接的,那么贴出maven的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>HelloWorld</groupId> <artifactId>my-project</artifactId> <version>1.0</version> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <repositories> <repository> <id>Spark repository</id> <url>http://46.137.105.19:8081/nexus/content/reposiroties/spark/</url> </repository> </repositories> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>HelloWorld</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin> </plugins></build> <dependencies> <dependency> <groupId>com.sparkjava</groupId> <artifactId>spark-core</artifactId> <version>2.5.5</version> </dependency> <dependency> <groupId>org.sql2o</groupId> <artifactId>sql2o</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> </dependencies></project>
编译连接生成了jar文件,使用java -jar 文件名.jar就可以运行了。
- Spark web Framework 结合sql2o连接MySQL
- Spark framework to mysql
- spark连接web界面
- zend framework连接mysql
- Entity framework 连接mysql
- entity framework 连接Mysql
- entity framework 连接Mysql
- spark 连接mysql
- spark连接mysql
- 浅谈Zend Framework结合Ajax Web开发
- Robot Framework - 连接mysql数据库
- 利用Struts结合Jbuilder7、MySql建立Web站点(1)--连接数据库
- spark SQL学习(spark连接 mysql)
- spark通过jbdc连接MySQL
- Spark SQL连接MySQL示例
- Java web 连接 mysql
- Play framework 2.x 连接mysql
- Entity framework for mysql 连接插件
- IoT的那些操作系统
- 自创网页首页”我的书屋“
- REST--REpresentational State Transfer
- JAVA实现重建二叉树(《剑指offer》)
- 车牌云识别API接口调用
- Spark web Framework 结合sql2o连接MySQL
- 九度OJ 1118 数制转换(a进制 -> b进制)
- 贪心入门题——看电视(区间调度问题)
- 安卓自定义View网址
- unity中获取button文本的内容
- SpringMVC与Struts2区别与比较总结
- Drupal8安装提示PHP OPcode caching未启用的解决方法
- (转)Java变量初始化赋值null
- C语言基础:C控制语句:分支和跳转