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就可以运行了。

0 0
原创粉丝点击